code: def __init__(self, args):
      BaseEncoder.__init__(self)
  
      self.input_dim = (3, 64, 64)
      self.latent_dim = args.latent_dim
      self.n_channels = 3
  
      layers = nn.ModuleList()
  
      layers.append(
          nn.Sequential(
              nn.Conv2d(self.n_channels, 128, 4, 2, padding=1),
              nn.BatchNorm2d(128),
              nn.ReLU(),
          )
      )
  
      layers.append(
          nn.Sequential(
              nn.Conv2d(128, 256, 4, 2, padding=1),
              nn.BatchNorm2d(256),
              nn.ReLU(),
          )
      )
  
      layers.append(
          nn.Sequential(
              nn.Conv2d(256, 512, 4, 2, padding=1),
              nn.BatchNorm2d(512),
              nn.ReLU(),
          )
      )
  
      layers.append(
          nn.Sequential(
              nn.Conv2d(512, 1024, 4, 2, padding=1),
              nn.BatchNorm2d(1024),
              nn.ReLU(),
          )
      )
  
      self.layers = layers
      self.depth = len(layers)
  
      self.embedding = nn.Linear(1024 * 4 * 4, args.latent_dim)
  
file_path: benchmark_VAE/examples/scripts/reproducibility/rae_gp.py
imports: import logging
  import os
  from typing import List
  import numpy
  import torch
  import torch.nn
  from pythae.data.preprocessors import DataProcessor
  from pythae.models import RAE_GP, RAE_GP_Config
  from pythae.models.base.base_utils import ModelOutput
  from pythae.models.nn import BaseDecoder, BaseEncoder
  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(args)