code: def __call__(self, inputs):
      x = inputs
      if self._expand_conv:
          x = self._bn0(x.conv2d(self._expand_conv)).swish()
      x = x.conv2d(
          self._depthwise_conv,
          padding=self.pad,
          stride=self.strides,
          groups=self._depthwise_conv.shape[0],
      )
      x = self._bn1(x).swish()
  
      if self.has_se:
          x_squeezed = x.avg_pool2d(kernel_size=x.shape[2:4])
          x_squeezed = x_squeezed.conv2d(
              self._se_reduce, self._se_reduce_bias
          ).swish()
          x_squeezed = x_squeezed.conv2d(
              self._se_expand, self._se_expand_bias
          )
          x = x.mul(x_squeezed.sigmoid())
  
      x = self._bn2(x.conv2d(self._project_conv))
      if x.shape == inputs.shape:
          x = x.add(inputs)
      return x
  
file_path: tinygrad/extra/models/efficientnet.py
imports: import math
  from tinygrad.tensor import Tensor
  from tinygrad.nn import BatchNorm2d
  from tinygrad.helpers import get_child, fetch
  from tinygrad.nn.state import torch_load
label_desc: Use image node_id 2 for calling the MBConvBlock obj's underlying member method code with example usage: obj.__call__(inputs) and returns: x