class_docstr: NeRF model with TCNN encoding and MLPs for sigma and features.
  
  Args:
      num_input_dims (int): Number of input dimensions.
      bound (torch.Tensor): The bounding box tensor.
      density_activation (DensityActivationEnum): Activation function for density.
      blob_radius (float): Radius for the blob.
      blob_density (float): Density for the blob.
      normal_type (Optional[NormalTypeEnum]): Method to compute normals.
      encoder_cfg (Dict): Configuration for the TCNN encoder.
      sigma_net_num_output_dims (int): Number of output dimensions for the sigma network.
      sigma_net_cfg (Dict): Configuration for the sigma network.
      features_net_num_output_dims (int): Number of output dimensions for the features network.
      features_net_cfg (Optional[Dict]): Configuration for the features network.
class_docstr_tok: ["NeRF","model","with","TCNN","encoding","and","MLPs","for","sigma","and","features",".","Args",":","num_input_dims","(","int",")",":","Number","of","input","dimensions",".","bound","(","torch.Tensor",")",":","The","bounding","box","tensor",".","density_activation","(","DensityActivationEnum",")",":","Activation","function","for","density",".","blob_radius","(","float",")",":","Radius","for","the","blob",".","blob_density","(","float",")",":","Density","for","the","blob",".","normal_type","(","Optional","[","NormalTypeEnum","]",")",":","Method","to","compute","normals",".","encoder_cfg","(","Dict",")",":","Configuration","for","the","TCNN","encoder",".","sigma_net_num_output_dims","(","int",")",":","Number","of","output","dimensions","for","the","sigma","network",".","sigma_net_cfg","(","Dict",")",":","Configuration","for","the","sigma","network",".","features_net_num_output_dims","(","int",")",":","Number","of","output","dimensions","for","the","features","network",".","features_net_cfg","(","Optional","[","Dict","]",")",":","Configuration","for","the","features","network","."]
docstr: Encode the positions using the TCNN encoder.
  
  Args:
      positions (torch.Tensor): The positions tensor.
  
  Returns:
      torch.Tensor: The encoded positions tensor.
docstr_tok: ["Encode","the","positions","using","the","TCNN","encoder",".","Args",":","positions","(","torch.Tensor",")",":","The","positions","tensor",".","Returns",":","torch.Tensor",":","The","encoded","positions","tensor","."]
code: def encode(self, positions: torch.Tensor) -> torch.Tensor:
      """
      Encode the positions using the TCNN encoder.
  
      Args:
          positions (torch.Tensor): The positions tensor.
  
      Returns:
          torch.Tensor: The encoded positions tensor.
      """
      # TODO(ahmadki): is it safe to do with FP16 ?
      return self.encoder((positions + self.bound) / (2 * self.bound))
  
file_path: NeMo/nemo/collections/multimodal/modules/nerf/geometry/tcnn_nerf.py
imports: from typing import Dict, Optional
  import numpy
  import tinycudann
  import torch
  from nemo.collections.multimodal.modules.nerf.geometry.nerf_base import DensityActivationEnum, NeRFBase, NormalTypeEnum
label_desc: Use image node_id 2 for calling the TCNNNerf obj's underlying member method code with example usage: obj.encode(positions) and returns: self