class_docstr: WideResNet block.
docstr: Creates WRNBlock instance.
  
  Args:
      nin: number of input filters.
      nout: number of output filters.
      stride: stride for convolution and projection convolution in this block.
      bn: module which used as batch norm function.
docstr_tok: ["Creates","WRNBlock","instance",".","Args",":","nin",":","number","of","input","filters",".","nout",":","number","of","output","filters",".","stride",":","stride","for","convolution","and","projection","convolution","in","this","block",".","bn",":","module","which","used","as","batch","norm","function","."]
code: def __init__(
      self,
      nin: int,
      nout: int,
      stride: int = 1,
      bn: Callable = functools.partial(
          objax.nn.BatchNorm2D, momentum=BN_MOM, eps=BN_EPS
      ),
  ):
      """Creates WRNBlock instance.
  
      Args:
          nin: number of input filters.
          nout: number of output filters.
          stride: stride for convolution and projection convolution in this block.
          bn: module which used as batch norm function.
      """
      if nin != nout or stride > 1:
          self.proj_conv = objax.nn.Conv2D(
              nin, nout, 1, strides=stride, **conv_args(1, nout)
          )
      else:
          self.proj_conv = None
  
      self.norm_1 = bn(nin)
      self.conv_1 = objax.nn.Conv2D(
          nin, nout, 3, strides=stride, **conv_args(3, nout)
      )
      self.norm_2 = bn(nout)
      self.conv_2 = objax.nn.Conv2D(
          nout, nout, 3, strides=1, **conv_args(3, nout)
      )
  
file_path: objax/objax/zoo/wide_resnet.py
imports: import functools
  from typing import Callable, List
  import objax
  from objax.typing import JaxArray
label_desc: Use image node_id 1 to create a new WRNBlock object from inherited base classes: objax with example: obj = WRNBlock(nin, nout, stride, bn)