class_docstr: BasicBlock V2 from
  `"Identity Mappings in Deep Residual Networks"
  <https://arxiv.org/abs/1603.05027>`_ paper.
  This is used for SE_ResNet V2 for 18, 34 layers.
  
  Parameters
  ----------
  channels : int
      Number of output channels.
  stride : int
      Stride size.
  downsample : bool, default False
      Whether to downsample the input.
  in_channels : int, default 0
      Number of input channels. Default is 0, to infer from the graph.
  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: ["BasicBlock","V2","from","`","``","Identity","Mappings","in","Deep","Residual","Networks","''","<","https",":","\/\/arxiv.org\/abs\/1603.05027",">","`","_","paper",".","This","is","used","for","SE_ResNet","V2","for","18",",","34","layers",".","Parameters","--","--","--","--","--","channels",":","int","Number","of","output","channels",".","stride",":","int","Stride","size",".","downsample",":","bool",",","default","False","Whether","to","downsample","the","input",".","in_channels",":","int",",","default","0","Number","of","input","channels",".","Default","is","0",",","to","infer","from","the","graph",".","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,
      stride,
      downsample=False,
      in_channels=0,
      norm_layer=BatchNorm,
      norm_kwargs=None,
      **kwargs,
  ):
      super(SE_BasicBlockV2, self).__init__(**kwargs)
      self.bn1 = norm_layer(
          **({} if norm_kwargs is None else norm_kwargs)
      )
      self.conv1 = _conv3x3(channels, stride, in_channels)
      self.bn2 = norm_layer(
          **({} if norm_kwargs is None else norm_kwargs)
      )
      self.conv2 = _conv3x3(channels, 1, channels)
  
      self.se = nn.HybridSequential(prefix="")
      self.se.add(nn.Dense(channels // 16, use_bias=False))
      self.se.add(nn.Activation("relu"))
      self.se.add(nn.Dense(channels, use_bias=False))
      self.se.add(nn.Activation("sigmoid"))
  
      if downsample:
          self.downsample = nn.Conv2D(
              channels,
              1,
              stride,
              use_bias=False,
              in_channels=in_channels,
          )
      else:
          self.downsample = None
  
imports: from __future__ import division
  import os
  from mxnet import cpu
  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 SE_BasicBlockV2 object from inherited base classes: HybridBlock with example: obj = SE_BasicBlockV2(channels, stride, downsample, in_channels, norm_layer, norm_kwargs)