class_docstr: Inverted residual block w/ optional SE and CondConv routing
code: def forward(self, x):
      residual = x
  
      # Point-wise expansion
      x = self.conv_pw(x)
      x = self.bn1(x)
      x = self.act1(x)
  
      # Depth-wise convolution
      x = self.conv_dw(x)
      x = self.bn2(x)
      x = self.act2(x)
  
      # Squeeze-and-excitation
      if self.se is not None:
          x = self.se(x)
  
      # Point-wise linear projection
      x = self.conv_pwl(x)
      x = self.bn3(x)
  
      if self.has_residual:
          if self.drop_path_rate > 0.0:
              x = drop_path(x, self.drop_path_rate, self.training)
          x += residual
  
      return x
  
file_path: nni/examples/nas/legacy/cream/lib/models/blocks/inverted_residual_block.py
imports: import torch.nn
  from timm.models.layers import create_conv2d
  from timm.models.efficientnet_blocks import make_divisible, resolve_se_args, SqueezeExcite, drop_path
label_desc: Use image node_id 3 for calling the InvertedResidual obj's underlying member method code with example usage: obj.forward(x) and returns: x