class_docstr: Inverted residual block w/ CondConv routing
class_docstr_tok: ["Inverted","residual","block","w\/","CondConv","routing"]
code: def forward(self, x):
      residual = x
  
      # CondConv routing
      pooled_inputs = F.adaptive_avg_pool2d(x, 1).flatten(1)
      routing_weights = torch.sigmoid(self.routing_fn(pooled_inputs))
  
      # Point-wise expansion
      x = self.conv_pw(x, routing_weights)
      x = self.bn1(x)
      x = self.act1(x)
  
      # Depth-wise convolution
      x = self.conv_dw(x, routing_weights)
      x = self.bn2(x)
      x = self.act2(x)
  
      # Squeeze-and-excitation
      x = self.se(x)
  
      # Point-wise linear projection
      x = self.conv_pwl(x, routing_weights)
      x = self.bn3(x)
  
      if self.has_residual:
          if self.drop_connect_rate > 0.0:
              x = drop_connect(x, self.training, self.drop_connect_rate)
          x += residual
      return x
  
imports: import re
  from copy import deepcopy
  from .conv2d_layers import *
  from geffnet.activations import *
label_desc: Use image node_id 2 for calling the CondConvResidual obj's underlying member method code with example usage: obj.forward(x) and returns: x