code: def call(self, input_tensor, training=None, mask=None):
      logging.info(f"input: {input_tensor}")
      if isinstance(input_tensor, (tuple, list)):
          x = input_tensor[0]
      elif isinstance(input_tensor, dict):
          x = input_tensor["inputs"]
      else:
          x = input_tensor
  
      x = self.zero_pad1(x)
      x = self.conv1(x)
      x = self.bn1(x)
      x = self.act1(x)
      x = self.zero_pad2(x)
      x = self.max_pool1(x)
  
      x = self.conv_block1a(x)
      x = self.identity_block1b(x)
      x = self.identity_block1c(x)
  
      x = self.conv_block2a(x)
      x = self.identity_block2b(x)
      x = self.identity_block2c(x)
      x = self.identity_block2d(x)
  
      x = self.conv_block3a(x)
      x = self.identity_block3b(x)
      x = self.identity_block3c(x)
      x = self.identity_block3d(x)
      x = self.identity_block3e(x)
      x = self.identity_block3f(x)
  
      x = self.conv_block4a(x)
      x = self.identity_block4b(x)
      x = self.identity_block4c(x)
  
      x = self.global_avg_pool(x)
      x = self.dense(x)
      return x
  
file_path: delta/delta/models/resnet_model.py
imports: from absl import logging
  import delta.compat
  from tensorflow.python.keras import backend
  from delta.models.base_model import Model
  from delta.layers.resnet import IdentityBlock
  from delta.layers.resnet import ConvBlock
  from delta.utils.register import registers
label_desc: Use image node_id 2 for calling the ResNet50 obj's underlying member method code with example usage: obj.call(input_tensor, training, mask) and returns: x