code: def forward(self, x):
      # if self.input_size!=112:
      #    x = F.interpolate(x, [self.input_size, self.input_size], mode='bilinear', align_corners=False)
      is_fp16 = self.fp16 > 0
      with torch.cuda.amp.autocast(is_fp16):
          x = self.conv1(x)
          x = self.bn1(x)
          x = self.prelu(x)
          x = self.layer1(x)
          x = self.layer2(x)
          x = self.layer3(x)
          if self.fp16 < 3:
              x = self.layer4(x)
              x = self.bn2(x)
              x = torch.flatten(x, 1)
              if self.dropout is not None:
                  x = self.dropout(x)
      if is_fp16:
          x = x.float()
      if self.fp16 >= 3:
          x = self.layer4(x)
          x = self.bn2(x)
          x = torch.flatten(x, 1)
          if self.dropout is not None:
              x = self.dropout(x)
      x = self.fc(x)
      x = self.features(x)
      return x
  
imports: import torch
  from torch import nn
  import torch.nn.functional
  import logging
label_desc: Use image node_id 3 for calling the IResNet obj's underlying member method code with example usage: obj.forward(x) and returns: x