class_docstr: Applies an N-dimensional convolution over an input.
  
  Args:
      opts: Command line options.
      in_channels: :math:`C_{out}` from an expected output of size
          :math:`(bs, C_{in}, X_{1}, ..., X_{N})`.
      out_channels: :math:`C_{out}` from an expected output of size
          :math:`(bs, C_{out}, Y_{1}, ..., Y_{N})`.
      kernel_size: Kernel size for convolution. An integer, or tuple of length ``N``.
      stride: Stride for convolution. An integer, or tuple of length ``N``. Default: 1.
      dilation: Dilation rate for convolution. An integer, or tuple of length ``N``.
          Default: ``1``.
      padding: Padding for convolution. An integer, or tuple of length ``N``.
          If not specified, padding is automatically computed based on kernel size and
          dilation range. Default : ``None`` (equivalent to ``[
          int((kernel_size[i] - 1) / 2) * dilation[i] for i in range(N)]``).
      groups: Number of groups in convolution. Default: ``1``.
      bias: Use bias. Default: ``False``.
      padding_mode: Padding mode ('zeros', 'reflect', 'replicate' or 'circular').
          Default: ``zeros``.
      use_norm: Use normalization layer after convolution. Default: ``True``.
      use_act: Use activation layer after convolution (or convolution and normalization).
          Default: ``True``.
      norm_layer: If not None, the provided normalization layer object will be used.
          Otherwise, a normalization object will be created based on config
          ``model.normalization.*`` opts.
      act_layer: If not None, the provided activation function will be used.
          Otherwise, an activation function will be created based on config
          ``model.activation.*`` opts.
  
  Shape:
      - Input: :math:`(bs, C_{in}, X_{1}, ..., X_{N})`.
      - Output: :math:`(bs, C_{out}, Y_{1}, ..., Y_{N})`.
  
  .. note::
      For depth-wise convolution, `groups=C_{in}=C_{out}`.
class_docstr_tok: ["Applies","an","N-dimensional","convolution","over","an","input",".","Args",":","opts",":","Command","line","options",".","in_channels",":",":","math",":","`","C_","{","out","}","`","from","an","expected","output","of","size",":","math",":","`","(","bs",",","C_","{","in","}",",","X_","{","1","}",",","...",",","X_","{","N","}",")","`",".","out_channels",":",":","math",":","`","C_","{","out","}","`","from","an","expected","output","of","size",":","math",":","`","(","bs",",","C_","{","out","}",",","Y_","{","1","}",",","...",",","Y_","{","N","}",")","`",".","kernel_size",":","Kernel","size","for","convolution",".","An","integer",",","or","tuple","of","length","``","N","``",".","stride",":","Stride","for","convolution",".","An","integer",",","or","tuple","of","length","``","N","``",".","Default",":","1.","dilation",":","Dilation","rate","for","convolution",".","An","integer",",","or","tuple","of","length","``","N","``",".","Default",":","``","1","``",".","padding",":","Padding","for","convolution",".","An","integer",",","or","tuple","of","length","``","N","``",".","If","not","specified",",","padding","is","automatically","computed","based","on","kernel","size","and","dilation","range",".","Default",":","``","None","``","(","equivalent","to","``","[","int","(","(","kernel_size","[","i","]","-","1",")","\/","2",")","*","dilation","[","i","]","for","i","in","range","(","N",")","]","``",")",".","groups",":","Number","of","groups","in","convolution",".","Default",":","``","1","``",".","bias",":","Use","bias",".","Default",":","``","False","``",".","padding_mode",":","Padding","mode","(","'zeros","'",",","'reflect","'",",","'replicate","'","or","'circular","'",")",".","Default",":","``","zeros","``",".","use_norm",":","Use","normalization","layer","after","convolution",".","Default",":","``","True","``",".","use_act",":","Use","activation","layer","after","convolution","(","or","convolution","and","normalization",")",".","Default",":","``","True","``",".","norm_layer",":","If","not","None",",","the","provided","normalization","layer","object","will","be","used",".","Otherwise",",","a","normalization","object","will","be","created","based","on","config","``","model.normalization",".","*","``","opts",".","act_layer",":","If","not","None",",","the","provided","activation","function","will","be","used",".","Otherwise",",","an","activation","function","will","be","created","based","on","config","``","model.activation",".","*","``","opts",".","Shape",":","-","Input",":",":","math",":","`","(","bs",",","C_","{","in","}",",","X_","{","1","}",",","...",",","X_","{","N","}",")","`",".","-","Output",":",":","math",":","`","(","bs",",","C_","{","out","}",",","Y_","{","1","}",",","...",",","Y_","{","N","}",")","`",".","..","note",":",":","For","depth-wise","convolution",",","`","groups=C_","{","in","}","=C_","{","out","}","`","."]
code: def forward(self, x: Tensor) -> Tensor:
      return self.block(x)
  
imports: import argparse
  from typing import Optional, Tuple, Type, Union
  from torch import Tensor, nn
  from cvnets.layers.activation import build_activation_layer
  from cvnets.layers.base_layer import BaseLayer
  from cvnets.layers.normalization.layer_norm import LayerNorm, LayerNorm2D_NCHW
  from cvnets.layers.normalization_layers import get_normalization_layer
  from utils import logger
label_desc: Use image node_id 5 for calling the _BaseConvNormActLayer obj's underlying member method code with example usage: obj.forward(x) and returns: self