class_docstr: ## 2D Convolution Layer
  
  This extends the standard 2D Convolution layer and standardize the weights before the convolution step.
code: def __init__(
      self,
      in_channels,
      out_channels,
      kernel_size,
      stride=1,
      padding=0,
      dilation=1,
      groups: int = 1,
      bias: bool = True,
      padding_mode: str = "zeros",
      eps: float = 1e-5,
  ):
      super(Conv2d, self).__init__(
          in_channels,
          out_channels,
          kernel_size,
          stride=stride,
          padding=padding,
          dilation=dilation,
          groups=groups,
          bias=bias,
          padding_mode=padding_mode,
      )
      self.eps = eps
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/normalization/weight_standardization/conv2d.py
imports: import torch
  import torch.nn
  from torch.nn import functional
  from labml_nn.normalization.weight_standardization import weight_standardization
label_desc: Use image node_id 1 to create a new Conv2d object from inherited base classes: nn with example: obj = Conv2d(in_channels, out_channels, kernel_size, stride, padding, dilation, groups, bias, padding_mode, eps)