code: def test_load_hubconf(self):
      path = os.path.join(
          os.path.dirname(os.path.realpath(__file__)),
          "..",
      )
      for input_clip_length, input_crop_size, model_name in [
          (4, 160, "x3d_xs"),
          (13, 160, "x3d_s"),
          (16, 224, "x3d_m"),
      ]:
          model = torch.hub.load(
              repo_or_dir=path,
              source="local",
              model=model_name,
              pretrained=False,
              head_output_with_global_average=True,
          )
          self.assertIsNotNone(model)
  
          # Test forwarding.
          for tensor in TestX3d._get_inputs(
              input_clip_length, input_crop_size
          ):
              if tensor.shape[1] != 3:
                  with self.assertRaises(RuntimeError):
                      out = model(tensor)
                  continue
  
              out = model(tensor)
  
              output_shape = out.shape
              output_shape_gt = (tensor.shape[0], 400)
  
              self.assertEqual(
                  output_shape,
                  output_shape_gt,
                  "Output shape {} is different from expected shape {}".format(
                      output_shape, output_shape_gt
                  ),
              )
  
file_path: pytorchvideo/tests/test_models_x3d.py
imports: import os
  import unittest
  import torch
  from pytorchvideo.layers.swish import Swish
  from pytorchvideo.models.x3d import create_x3d, create_x3d_bottleneck_block
  from torch import nn
label_desc: Use image node_id 3 for calling the TestX3d obj's underlying member method code with example usage: obj.test_load_hubconf() without return types