code: def complexity(self, h, w, c):
      cx = {
          "h": h,
          "w": w,
          "c": c,
          "flops": 0,
          "params": 0,
          "acts": 0,
          "freeze": 0,
      }
      cx = self.stem.complexity(cx)
  
      for module in self.blocks.children():
          if hasattr(module, "complexity"):
              cx = module.complexity(cx)
          else:
              print(module)
  
      for module in self.head.children():
          if hasattr(module, "complexity"):
              cx = module.complexity(cx)
          elif isinstance(module, nn.Linear):
              in_units = module.in_features
              out_units = module.out_features
              cx = gap2d_cx(cx)
              cx = linear_cx(
                  cx,
                  in_units,
                  out_units,
                  bias=True,
                  trainable=module.weight.requires_grad,
              )
      # print(cx)
      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 EfficientNetV2 obj's underlying member method code with example usage: obj.complexity(h, w, c) and returns: cx