docstr: Test builder `create_slowfast` with callable inputs.
docstr_tok: ["Test","builder","`","create_slowfast","`","with","callable","inputs","."]
code: def test_create_slowfast_with_callable(self):
      """
      Test builder `create_slowfast` with callable inputs.
      """
      for norm, activation in itertools.product(
          (nn.BatchNorm3d, None), (nn.ReLU, nn.Sigmoid, None)
      ):
          input_clip_length = 32
          input_crop_size = 224
          input_channel = 3
  
          model = create_slowfast(
              slowfast_channel_reduction_ratio=8,
              slowfast_conv_channel_fusion_ratio=2,
              slowfast_fusion_conv_kernel_size=(7, 1, 1),
              slowfast_fusion_conv_stride=(4, 1, 1),
              input_channels=(input_channel,) * 2,
              model_depth=18,
              model_num_class=400,
              dropout_rate=0,
              norm=norm,
              activation=activation,
          )
  
          # Test forwarding.
          for tensor in TestSlowFast._get_inputs(
              input_channel, input_clip_length, input_crop_size
          ):
              with torch.no_grad():
                  if tensor[0].shape[1] != input_channel:
                      with self.assertRaises(RuntimeError):
                          model(tensor)
                      continue
  
                  model(tensor)
  
file_path: pytorchvideo/tests/test_models_slowfast.py
imports: import itertools
  import os
  import unittest
  from typing import Tuple
  import torch
  from pytorchvideo.models.slowfast import create_slowfast, create_slowfast_with_roi_head
  from pytorchvideo.transforms.functional import uniform_temporal_subsample_repeated
  from torch import nn
label_desc: Use image node_id 5 for calling the TestSlowFast obj's underlying member method code with example usage: obj.test_create_slowfast_with_callable() without return types