code: def forward(self, x):
      is_feature_only = self.fc is None
      if is_feature_only:
          features = []
      out = self.bn1(self.conv1(x)).relu()
      out = out.pad2d([1, 1, 1, 1]).max_pool2d((3, 3), 2)
      out = out.sequential(self.layer1)
      if is_feature_only:
          features.append(out)
      out = out.sequential(self.layer2)
      if is_feature_only:
          features.append(out)
      out = out.sequential(self.layer3)
      if is_feature_only:
          features.append(out)
      out = out.sequential(self.layer4)
      if is_feature_only:
          features.append(out)
      if not is_feature_only:
          out = out.mean([2, 3])
          out = self.fc(out).log_softmax()
          return out
      return features
  
file_path: tinygrad/extra/models/resnet.py
imports: import tinygrad.nn
  from tinygrad.tensor import Tensor
  from tinygrad.nn.state import torch_load
  from tinygrad.helpers import fetch, get_child
label_desc: Use image node_id 3 for calling the ResNet obj's underlying member method code with example usage: obj.forward(x) and returns: features, out