class_docstr: EfficientNet model.
docstr: Computes model complexity (if you alter the model, make sure to update).
docstr_tok: ["Computes","model","complexity","(","if","you","alter","the","model",",","make","sure","to","update",")","."]
code: def complexity(cx, params=None):
      """Computes model complexity (if you alter the model, make sure to update)."""
      p = EffNet.get_params() if not params else params
      vs = ["sw", "ds", "ws", "exp_rs", "se_r", "ss", "ks", "hw", "nc"]
      sw, ds, ws, exp_rs, se_r, ss, ks, hw, nc = [p[v] for v in vs]
      stage_params = list(zip(ds, ws, exp_rs, ss, ks))
      cx = StemIN.complexity(cx, 3, sw)
      prev_w = sw
      for d, w, exp_r, stride, k in stage_params:
          cx = EffStage.complexity(
              cx, prev_w, exp_r, k, stride, se_r, w, d
          )
          prev_w = w
      cx = EffHead.complexity(cx, prev_w, hw, nc)
      return cx
  
imports: from pycls.core.config import cfg
  from pycls.models.blocks import activation, conv2d, conv2d_cx, drop_connect, gap2d, gap2d_cx, init_weights, linear, linear_cx, norm2d, norm2d_cx, SE
  from torch.nn import Dropout, Module
label_desc: Use image node_id 4 for calling the EffNet obj's underlying member method code with example usage: obj.complexity(cx, params) and returns: cx