class_docstr: Interface for all perception blocks.
  Perception blocks provide a mapping of M input tensors to N output tensors.
  Both input and output tensors are stored in a dictionary with unique keys.
  
  :param in_keys: Keys identifying the input tensors.
  :param out_keys: Keys identifying the output tensors.
  :param in_shapes: List of input shapes.
class_docstr_tok: ["Interface","for","all","perception","blocks",".","Perception","blocks","provide","a","mapping","of","M","input","tensors","to","N","output","tensors",".","Both","input","and","output","tensors","are","stored","in","a","dictionary","with","unique","keys",".",":","param","in_keys",":","Keys","identifying","the","input","tensors",".",":","param","out_keys",":","Keys","identifying","the","output","tensors",".",":","param","in_shapes",":","List","of","input","shapes","."]
docstr: Calculates the total number of parameters in the model
  :return: The total number of parameters
docstr_tok: ["Calculates","the","total","number","of","parameters","in","the","model",":","return",":","The","total","number","of","parameters"]
code: def get_num_of_parameters(self) -> int:
      """Calculates the total number of parameters in the model
      :return: The total number of parameters
      """
      return sum(pp.numel() for pp in self.parameters())
  
file_path: maze/maze/perception/blocks/base.py
imports: from abc import ABC, abstractmethod
  from typing import Dict, Union, List, Sequence, Callable
  import numpy
  import torch
  from torch import nn
label_desc: Use image node_id 5 for calling the PerceptionBlock obj's underlying member method code with example usage: obj.get_num_of_parameters() and returns: sum