code: def complexity(self, cx):
      h, w = cx["h"], cx["w"]
      cx = gap2d_cx(cx)
      cx = conv2d_cx(
          cx,
          in_c=self.conv_reduce.in_channels,
          out_c=self.conv_reduce.out_channels,
          k=1,
          bias=True,
          trainable=self.conv_reduce.weight.requires_grad,
      )
      cx = conv2d_cx(
          cx,
          in_c=self.conv_expand.in_channels,
          out_c=self.conv_expand.out_channels,
          k=1,
          bias=True,
          trainable=self.conv_expand.weight.requires_grad,
      )
      cx["h"], cx["w"] = h, w
  
      return cx
  
imports: from collections import OrderedDict
  from functools import partial
  from typing import Callable, Optional
  import torch.nn
  import torch
  from torch import Tensor
  from utils import *
label_desc: Use image node_id 3 for calling the SqueezeExcite obj's underlying member method code with example usage: obj.complexity(cx) and returns: cx