class_docstr: Bottleneck transformation: 1x1, BN, AF, 3x3, BN, AF, 1x1, BN.
class_docstr_tok: ["Bottleneck","transformation",":","1x1",",","BN",",","AF",",","3x3",",","BN",",","AF",",","1x1",",","BN","."]
code: def complexity(cx, w_in, w_out, stride, w_b, groups):
      (s1, s3) = (stride, 1) if cfg.RESNET.STRIDE_1X1 else (1, stride)
      cx = conv2d_cx(cx, w_in, w_b, 1, stride=s1)
      cx = norm2d_cx(cx, w_b)
      cx = conv2d_cx(cx, w_b, w_b, 3, stride=s3, groups=groups)
      cx = norm2d_cx(cx, w_b)
      cx = conv2d_cx(cx, w_b, w_out, 1)
      cx = norm2d_cx(cx, w_out)
      return cx
  
imports: from pycls.core.config import cfg
  from pycls.models.blocks import activation, conv2d, conv2d_cx, gap2d, gap2d_cx, init_weights, linear, linear_cx, norm2d, norm2d_cx, pool2d, pool2d_cx
  from torch.nn import Module
label_desc: Use image node_id 3 for calling the BottleneckTransform obj's underlying member method code with example usage: obj.complexity(cx, w_in, w_out, stride, w_b, groups) and returns: cx