code: def get_scale_bias_callable(self):
      self.w_scale, self.w_bias, args = [], [], []
      batch_norms = [self.bn1, self.bn2, self.bn3]
      if self.downsample is not None:
          batch_norms.append(self.downsample[1])
      for bn in batch_norms:
          s = torch.empty_like(bn.weight)
          b = torch.empty_like(s)
          args.append(
              (
                  bn.weight,
                  bn.bias,
                  bn.running_mean,
                  bn.running_var,
                  s,
                  b,
              )
          )
          if self.explicit_nhwc:
              self.w_scale.append(s.reshape(1, 1, 1, -1))
              self.w_bias.append(b.reshape(1, 1, 1, -1))
          else:
              self.w_scale.append(s.reshape(1, -1, 1, 1))
              self.w_bias.append(b.reshape(1, -1, 1, 1))
      return func.partial(
          compute_scale_bias_method, self.explicit_nhwc, args
      )
  
imports: import functools
  import torch
  import torch.distributed
  from torch import nn
  from apex import check_cudnn_version_and_warn
  import fast_bottleneck
  import nccl_p2p_cuda
label_desc: Use image node_id 2 for calling the SpatialBottleneck obj's underlying member method code with example usage: obj.get_scale_bias_callable() and returns: func