class_docstr: Class to represent a multi-layer perceptron.
  
  The MLP represents a deep NN of fully connected layers.
  The network is build of user defined sub-units, each with a user defined number of layers.
  
  Skip connections span between the sub-units.
  The model follows: Ben Mildenhall et el. (2020) at https://arxiv.org/abs/2003.08934.
code: def forward(self, x: Tensor) -> Tensor:
      out = x
      x_skip = x
      for i, layer in enumerate(self._mlp):
          if i > 0 and i % self._num_unit_layers == 0:
              out = torch.cat((out, x_skip), dim=-1)
          out = layer(out)
      return out
  
imports: from __future__ import annotations
  import torch
  from torch import nn
  from torch.nn import functional
  from kornia.core import Module, Tensor
  from kornia.geometry.camera import PinholeCamera
  from kornia.geometry.ray import Ray
  from kornia.nerf.positional_encoder import PositionalEncoder
  from kornia.nerf.samplers import sample_lengths, sample_ray_points
  from kornia.nerf.volume_renderer import IrregularRenderer, RegularRenderer
  from kornia.utils._compat import torch_inference_mode
  from kornia.utils.grid import create_meshgrid
label_desc: Use image node_id 2 for calling the MLP obj's underlying member method code with example usage: obj.forward(x) and returns: out