class_docstr: A Multi-Layer Perceptron (MLP) module.
  
  Args:
      num_input_dims (int): Number of input dimensions.
      num_output_dims (int): Number of output dimensions.
      num_hidden_dims (int): Number of hidden dimensions.
      num_layers (int): Number of layers in the MLP.
      bias (bool): If True, enables the bias in Linear layers. Default is True.
      block (BlockBuilder): A callable or class for constructing a block. Default is None.
class_docstr_tok: ["A","Multi-Layer","Perceptron","(","MLP",")","module",".","Args",":","num_input_dims","(","int",")",":","Number","of","input","dimensions",".","num_output_dims","(","int",")",":","Number","of","output","dimensions",".","num_hidden_dims","(","int",")",":","Number","of","hidden","dimensions",".","num_layers","(","int",")",":","Number","of","layers","in","the","MLP",".","bias","(","bool",")",":","If","True",",","enables","the","bias","in","Linear","layers",".","Default","is","True",".","block","(","BlockBuilder",")",":","A","callable","or","class","for","constructing","a","block",".","Default","is","None","."]
code: def __init__(
      self,
      num_input_dims: int,
      num_output_dims: int,
      num_hidden_dims: int,
      num_layers: int,
      bias: bool = True,
      block: BlockBuilder = None,
  ):
      super().__init__()
  
      # Initialize the network as an empty list
      network = []
  
      # Add input layer
      network.append(
          nn.Linear(num_input_dims, num_hidden_dims, bias=bias)
      )
      network.append(nn.ReLU(inplace=True))
  
      # Add hidden layers
      for _ in range(1, num_layers - 1):
          network.extend(
              self.build_layer(
                  num_hidden_dims, num_hidden_dims, bias, block
              )
          )
  
      # Add output layer
      network.append(
          nn.Linear(num_hidden_dims, num_output_dims, bias=bias)
      )
  
      # Wrap layers in ModuleList for proper registration
      self.net = nn.ModuleList(network)
  
file_path: NeMo/nemo/collections/multimodal/modules/nerf/geometry/layers.py
imports: from typing import Callable, List, Type, Union
  import torch
  import torch.nn
label_desc: Use image node_id 1 to create a new MLP object from inherited base classes: nn with example: obj = MLP(num_input_dims, num_output_dims, num_hidden_dims, num_layers, bias, block)