class_docstr: Modulated convolution.
  For details refer to [1]
  [1] Karras et. al. - Analyzing and Improving the Image Quality of StyleGAN (https://arxiv.org/abs/1912.04958)
class_docstr_tok: ["Modulated","convolution",".","For","details","refer","to","[","1","]","[","1","]","Karras","et",".","al",".","-","Analyzing","and","Improving","the","Image","Quality","of","StyleGAN","(","https",":","\/\/arxiv.org\/abs\/1912.04958",")"]
code: def __init__(
      self,
      in_chan,
      out_chan,
      kernel,
      demod=True,
      stride=1,
      dilation=1,
      eps=1e-8,
      **kwargs,
  ):
      super().__init__()
      self.filters = out_chan
      self.demod = demod
      self.kernel = kernel
      self.stride = stride
      self.dilation = dilation
      self.weight = torch.nn.Parameter(
          torch.randn((out_chan, in_chan, kernel, kernel))
      )
      self.eps = eps
      torch.nn.init.kaiming_normal_(
          self.weight, a=0, mode="fan_in", nonlinearity="leaky_relu"
      )
  
imports: import math
  from functools import partial
  from math import log2
  from typing import List
  import torch
  import torch.nn.functional
  from einops import rearrange
  from kornia.filters import filter2d
  from nemo.collections.tts.parts.utils.helpers import mask_sequence_tensor
label_desc: Use image node_id 1 to create a new Conv2DModulated object from inherited base classes: torch.nn with example: obj = Conv2DModulated(in_chan, out_chan, kernel, demod, stride, dilation, eps)