class_docstr: ResNet V2 model from
  `"Identity Mappings in Deep Residual Networks"
  <https://arxiv.org/abs/1603.05027>`_ paper.
  
  Parameters
  ----------
  channels : int
      Output channels
  in_channels : int
      Input channels
  stride : int
      Stride size.
  norm_layer : object
      Normalization layer used (default: :class:`mxnet.gluon.nn.BatchNorm`)
      Can be :class:`mxnet.gluon.nn.BatchNorm` or :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
  norm_kwargs : dict
      Additional `norm_layer` arguments, for example `num_devices=4`
      for :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
class_docstr_tok: ["ResNet","V2","model","from","`","``","Identity","Mappings","in","Deep","Residual","Networks","''","<","https",":","\/\/arxiv.org\/abs\/1603.05027",">","`","_","paper",".","Parameters","--","--","--","--","--","channels",":","int","Output","channels","in_channels",":","int","Input","channels","stride",":","int","Stride","size",".","norm_layer",":","object","Normalization","layer","used","(","default",":",":","class",":","`","mxnet.gluon.nn.BatchNorm","`",")","Can","be",":","class",":","`","mxnet.gluon.nn.BatchNorm","`","or",":","class",":","`","mxnet.gluon.contrib.nn.SyncBatchNorm","`",".","norm_kwargs",":","dict","Additional","`","norm_layer","`","arguments",",","for","example","`","num_devices=4","`","for",":","class",":","`","mxnet.gluon.contrib.nn.SyncBatchNorm","`","."]
code: def __init__(
      self,
      channels,
      in_channels=None,
      stride=1,
      norm_layer=BatchNorm,
      norm_kwargs=None,
  ):
      super(ResidualBlock, self).__init__()
      self.channels = channels
      self.stride = stride
      self.in_channels = in_channels if in_channels else channels
      with self.name_scope():
          self.bn1 = norm_layer(
              **({} if norm_kwargs is None else norm_kwargs)
          )
          self.conv1 = nn.Conv2D(channels // 4, 1, 1, use_bias=False)
          self.bn2 = norm_layer(
              **({} if norm_kwargs is None else norm_kwargs)
          )
          self.conv2 = nn.Conv2D(
              channels // 4, 3, stride, padding=1, use_bias=False
          )
          self.bn3 = norm_layer(
              **({} if norm_kwargs is None else norm_kwargs)
          )
          self.conv3 = nn.Conv2D(channels, 1, 1, use_bias=False)
          if stride != 1 or (self.in_channels != self.channels):
              self.conv4 = nn.Conv2D(
                  channels, 1, stride, use_bias=False
              )
  
imports: from mxnet.gluon import nn
  from mxnet.gluon.nn import BatchNorm
  from mxnet.gluon.block import HybridBlock
label_desc: Use image node_id 1 to create a new ResidualBlock object from inherited base classes: HybridBlock with example: obj = ResidualBlock(channels, in_channels, stride, norm_layer, norm_kwargs)