docstr: Test simple ResNet with different inputs.
code: def test_create_resnet(self):
      """
      Test simple ResNet with different inputs.
      """
      for (
          input_channel,
          input_clip_length,
          input_crop_size,
      ) in itertools.product((3, 2), (2, 4), (56, 64)):
          model_depth = 50
          model, num_class = self._build_resnet(
              input_channel,
              input_clip_length,
              input_crop_size,
              model_depth,
              nn.BatchNorm3d,
              nn.ReLU,
          )
  
          # Test forwarding.
          for tensor in TestResNet._get_inputs(
              input_channel, input_clip_length, input_crop_size
          ):
              if tensor.shape[1] != input_channel:
                  with self.assertRaises(RuntimeError):
                      out = model(tensor)
                  continue
  
              out = model(tensor)
  
              output_shape = out.shape
              output_shape_gt = (tensor.shape[0], num_class)
  
              self.assertEqual(
                  output_shape,
                  output_shape_gt,
                  "Output shape {} is different from expected shape {}".format(
                      output_shape, output_shape_gt
                  ),
              )
  
imports: import itertools
  import os
  import unittest
  import numpy
  import torch
  from pytorchvideo.models.head import ResNetBasicHead
  from pytorchvideo.models.net import Net
  from pytorchvideo.models.resnet import BottleneckBlock, create_acoustic_bottleneck_block, create_acoustic_resnet, create_bottleneck_block, create_res_block, create_res_stage, create_resnet, create_resnet_with_roi_head, ResBlock, ResStage, SeparableBottleneckBlock
  from pytorchvideo.models.stem import ResNetBasicStem
  from torch import nn
label_desc: Use image node_id 3 for calling the TestResNet obj's underlying member method code with example usage: obj.test_create_resnet() without return types