code: def test_torch_model_block():
      """perception test"""
      with torch.no_grad():
          custom_model = CustomPytorchModel()
          torch_model_block = TorchModelBlock(
              in_keys=["in_key_0", "in_key_1"],
              out_keys=["out_key_0", "out_key_1"],
              in_shapes=[[3, 5, 5], [16]],
              in_num_dims=[4, 2],
              out_num_dims=[4, 2],
              net=custom_model,
          )
  
          in_tensor_dict = build_multi_input_dict(
              dims=[[3, 5, 5], [16]]
          )
          out_dict = torch_model_block(in_tensor_dict)
          assert out_dict["out_key_0"].numpy().shape == (4, 5, 5)
          assert out_dict["out_key_1"].numpy().shape == (32,)
  
          in_tensor_dict = build_multi_input_dict(
              dims=[[8, 3, 5, 5], [8, 16]]
          )
          out_dict = torch_model_block(in_tensor_dict)
          assert out_dict["out_key_0"].numpy().shape == (8, 4, 5, 5)
          assert out_dict["out_key_1"].numpy().shape == (8, 32)
  
file_path: maze/maze/test/perception/blocks/test_torch_model_block.py
imports: from typing import Dict
  import torch
  import torch.nn
  from maze.perception.blocks.general.torch_model_block import TorchModelBlock
  from maze.test.perception.perception_test_utils import build_multi_input_dict
label_desc: Use image node_id 1 for calling a global function with example usage: test_torch_model_block() without return types