code: def __init__(self, in_channels, out_channels, stride, name):
      super(BottleneckBlock, self).__init__()
      self.conv0 = ConvBNLayer(
          in_channels=in_channels,
          out_channels=out_channels,
          kernel_size=1,
          act="relu",
          name=name + "_branch2a",
      )
      self.conv1 = ConvBNLayer(
          in_channels=out_channels,
          out_channels=out_channels,
          kernel_size=3,
          stride=stride,
          act="relu",
          name=name + "_branch2b",
      )
  
      self.conv2 = ConvBNLayer(
          in_channels=out_channels,
          out_channels=out_channels * 4,
          kernel_size=1,
          act=None,
          name=name + "_branch2c",
      )
  
      self.short = ShortCut(
          in_channels=in_channels,
          out_channels=out_channels * 4,
          stride=stride,
          is_first=False,
          name=name + "_branch1",
      )
      self.out_channels = out_channels * 4
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from paddle import nn, ParamAttr
  from paddle.nn import functional
  import paddle
  import numpy
label_desc: Use image node_id 1 to create a new BottleneckBlock object from inherited base classes: nn with example: obj = BottleneckBlock(in_channels, out_channels, stride, name)