class_docstr: A block transforming a common nn.Module to a shape-normalized Maze perception block.
  
  :param in_keys: Keys identifying the input tensors.
  :param out_keys: Keys identifying the output tensors.
  :param in_shapes: List of input shapes.
  :param in_num_dims: Required number of dimensions for corresponding input.
  :param out_num_dims: Required number of dimensions for corresponding output.
  :param net: An nn.Module PyTorch net (the forward method of which must accept a Tensor input dict as parameter
              and must return a Tensor output dict)
code: def __init__(
      self,
      in_keys: Union[str, List[str]],
      out_keys: Union[str, List[str]],
      in_shapes: Union[Sequence[int], List[Sequence[int]]],
      in_num_dims: Union[int, List[int]],
      out_num_dims: Union[int, List[int]],
      net: nn.Module,
  ):
      super().__init__(
          in_keys=in_keys,
          out_keys=out_keys,
          in_shapes=in_shapes,
          in_num_dims=in_num_dims,
          out_num_dims=out_num_dims,
      )
  
      self.net = net
  
file_path: maze/maze/perception/blocks/general/torch_model_block.py
imports: from typing import Union, List, Sequence, Dict
  import torch
  import torch.nn
  from maze.core.annotations import override
  from maze.perception.blocks.shape_normalization import ShapeNormalizationBlock
label_desc: Use image node_id 1 to create a new TorchModelBlock object from inherited base classes: ShapeNormalizationBlock with example: obj = TorchModelBlock(in_keys, out_keys, in_shapes, in_num_dims, out_num_dims, net)