class_docstr: Residual bottleneck block: x + f(x), f = bottleneck transform.
class_docstr_tok: ["Residual","bottleneck","block",":","x","+","f","(","x",")",",","f","=","bottleneck","transform","."]
code: def complexity(cx, w_in, w_out, stride, params):
      if (w_in != w_out) or (stride != 1):
          h, w = cx["h"], cx["w"]
          cx = conv2d_cx(cx, w_in, w_out, 1, stride=stride)
          cx = norm2d_cx(cx, w_out)
          cx["h"], cx["w"] = h, w
      cx = BottleneckTransform.complexity(
          cx, w_in, w_out, stride, params
      )
      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, SE
  from torch.nn import Module
label_desc: Use image node_id 3 for calling the ResBottleneckBlock obj's underlying member method code with example usage: obj.complexity(cx, w_in, w_out, stride, params) and returns: cx