class_docstr: EfficientNet model.
code: def __init__(self, params=None):
      super(EffNet, self).__init__()
      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))
      self.stem = StemIN(3, sw)
      prev_w = sw
      for i, (d, w, exp_r, stride, k) in enumerate(stage_params):
          stage = EffStage(prev_w, exp_r, k, stride, se_r, w, d)
          self.add_module("s{}".format(i + 1), stage)
          prev_w = w
      self.head = EffHead(prev_w, hw, nc)
      self.apply(init_weights)
  
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 2 to create a new EffNet object from inherited base classes: Module with example: obj = EffNet(params)