class_docstr: Base Class from Normalizing flows
  
  Args:
      model_config (BaseNFConfig): The configuration setting the main parameters of the
          model.
code: def __init__(self, model_config: BaseNFConfig):
      nn.Module.__init__(self)
  
      if model_config.input_dim is None:
          raise AttributeError(
              "No input dimension provided !"
              "'input_dim' parameter of MADEConfig instance must be set to 'data_shape' "
              "where the shape of the data is (C, H, W ..)]. Unable to build network"
              "automatically"
          )
  
      self.model_config = model_config
      self.input_dim = np.prod(model_config.input_dim)
  
imports: import os
  import sys
  from copy import deepcopy
  import numpy
  import torch
  import torch.nn
  from ....data.datasets import BaseDataset
  from ...auto_model import AutoConfig
  from ...base.base_config import EnvironmentConfig
  from ...base.base_utils import ModelOutput
  from .base_nf_config import BaseNFConfig
label_desc: Use image node_id 1 to create a new BaseNF object from inherited base classes: nn with example: obj = BaseNF(model_config)