class_docstr: Perception block normalizing the input and de-normalizing the output tensor dimensions.
  
  Examples where this interface needs to be implemented are Dense Layers (batch-dim, feature-dim)
  or Convolution Blocks (batch-dim, feature-dim, row-dim, column-dim)
  
  :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.
class_docstr_tok: ["Perception","block","normalizing","the","input","and","de-normalizing","the","output","tensor","dimensions",".","Examples","where","this","interface","needs","to","be","implemented","are","Dense","Layers","(","batch-dim",",","feature-dim",")","or","Convolution","Blocks","(","batch-dim",",","feature-dim",",","row-dim",",","column-dim",")",":","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","."]
docstr: Shape normalized forward pass called in the actual forward pass of this block.
  
  :param block_input: The block's shape normalized input dictionary.
  :return: The block's shape normalized output dictionary.
docstr_tok: ["Shape","normalized","forward","pass","called","in","the","actual","forward","pass","of","this","block",".",":","param","block_input",":","The","block","'s","shape","normalized","input","dictionary",".",":","return",":","The","block","'s","shape","normalized","output","dictionary","."]
code: def normalized_forward(
      self, block_input: Dict[str, torch.Tensor]
  ) -> Dict[str, torch.Tensor]:
      """Shape normalized forward pass called in the actual forward pass of this block.
  
      :param block_input: The block's shape normalized input dictionary.
      :return: The block's shape normalized output dictionary.
      """
  
file_path: maze/maze/perception/blocks/shape_normalization.py
imports: from abc import ABC, abstractmethod
  from typing import Dict, Union, List, Tuple, Sequence
  import numpy
  import torch
  from maze.core.annotations import override
  from maze.perception.blocks.base import PerceptionBlock
label_desc: Use image node_id 2 for calling the ShapeNormalizationBlock obj's underlying member method code with example usage: obj.normalized_forward(block_input) without return types