class_docstr: Zeroes out(cuts) random rectangles in the spectrogram
  as described in (https://arxiv.org/abs/1708.04552).
  
  params:
  rect_masks - how many rectangular masks should be cut
  rect_freq - maximum size of cut rectangles along the frequency dimension
  rect_time - maximum size of cut rectangles along the time dimension
class_docstr_tok: ["Zeroes","out","(","cuts",")","random","rectangles","in","the","spectrogram","as","described","in","(","https",":","\/\/arxiv.org\/abs\/1708.04552",")",".","params",":","rect_masks","-","how","many","rectangular","masks","should","be","cut","rect_freq","-","maximum","size","of","cut","rectangles","along","the","frequency","dimension","rect_time","-","maximum","size","of","cut","rectangles","along","the","time","dimension"]
code: def forward(self, input_spec):
      sh = input_spec.shape
  
      for idx in range(sh[0]):
          for i in range(self.rect_masks):
              rect_x = self._rng.randint(0, sh[1] - self.rect_freq)
              rect_y = self._rng.randint(0, sh[2] - self.rect_time)
  
              w_x = self._rng.randint(0, self.rect_freq)
              w_y = self._rng.randint(0, self.rect_time)
  
              input_spec[
                  idx, rect_x : rect_x + w_x, rect_y : rect_y + w_y
              ] = 0.0
  
      return input_spec
  
imports: import random
  import numpy
  import torch
  import torch.nn
  from nemo.core.classes import Typing, typecheck
  from nemo.core.neural_types import LengthsType, NeuralType, SpectrogramType
label_desc: Use image node_id 4 for calling the SpecCutout obj's underlying member method code with example usage: obj.forward(input_spec) and returns: input_spec