class_docstr: Usual encoder followed by an exponential map
code: def __init__(self, model_config, prior_iso):
      super(Encoder, self).__init__()
      self.manifold = PoincareBall(
          dim=model_config.latent_dim, c=model_config.curvature
      )
      self.enc = nn.Sequential(
          nn.Linear(np.prod(model_config.input_dim), 600),
          nn.ReLU(),
      )
      self.fc21 = nn.Linear(600, model_config.latent_dim)
      self.fc22 = nn.Linear(
          600, model_config.latent_dim if not prior_iso else 1
      )
  
imports: import logging
  import math
  import os
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from pythae.data.preprocessors import DataProcessor
  from pythae.models import AutoModel, PoincareVAE, PoincareVAEConfig
  from pythae.models.base.base_utils import ModelOutput
  from pythae.models.nn import BaseDecoder, BaseEncoder
  from pythae.models.pvae.pvae_utils import PoincareBall
  from pythae.trainers import BaseTrainer, BaseTrainerConfig
label_desc: Use image node_id 1 to create a new Encoder object from inherited base classes: BaseEncoder with example: obj = Encoder(model_config, prior_iso)