class_docstr: A bottleneck layer that maintains the resolution of the feature map.
  
  Args:
      in_channels (int): Number of channels of input and output arrays.
      mid_channels (int): Number of channels of intermediate arrays.
      initialW (4-D array): Initial weight value used in
          the convolutional layers.
class_docstr_tok: ["A","bottleneck","layer","that","maintains","the","resolution","of","the","feature","map",".","Args",":","in_channels","(","int",")",":","Number","of","channels","of","input","and","output","arrays",".","mid_channels","(","int",")",":","Number","of","channels","of","intermediate","arrays",".","initialW","(","4-D","array",")",":","Initial","weight","value","used","in","the","convolutional","layers","."]
code: def __init__(self, in_channels, mid_channels, initialW=None):
      super(BottleneckB, self).__init__()
      with self.init_scope():
          self.conv1 = Convolution2D(
              in_channels,
              mid_channels,
              1,
              1,
              0,
              initialW=initialW,
              nobias=True,
          )
          self.bn1 = BatchNormalization(mid_channels)
          self.conv2 = Convolution2D(
              mid_channels,
              mid_channels,
              3,
              1,
              1,
              initialW=initialW,
              nobias=True,
          )
          self.bn2 = BatchNormalization(mid_channels)
          self.conv3 = Convolution2D(
              mid_channels,
              in_channels,
              1,
              1,
              0,
              initialW=initialW,
              nobias=True,
          )
          self.bn3 = BatchNormalization(in_channels)
  
imports: import collections
  import os
  import sys
  import warnings
  import numpy
  import chainer
  from chainer.dataset.convert import concat_examples
  from chainer.dataset import download
  from chainer import function
  from chainer.functions.activation.relu import relu
  from chainer.functions.activation.softmax import softmax
  from chainer.functions.array.reshape import reshape
  from chainer.functions.math.sum import sum
  from chainer.functions.pooling.average_pooling_2d import average_pooling_2d
  from chainer.functions.pooling.max_pooling_nd import max_pooling_2d
  from chainer.initializers import constant
  from chainer.initializers import normal
  from chainer import link
  from chainer.links.connection.convolution_2d import Convolution2D
  from chainer.links.connection.linear import Linear
  from chainer.links.normalization.batch_normalization import BatchNormalization
  from chainer.serializers import npz
  from chainer.utils import argument
  from chainer.utils import imgproc
  from chainer.variable import Variable
label_desc: Use image node_id 1 to create a new BottleneckB object from inherited base classes: link with example: obj = BottleneckB(in_channels, mid_channels, initialW)