class_docstr: This Pipeline provides an end to end way to generate samples from a trained VAE model. It only
  needs a :class:`pythae.models` to sample from and a smapler configuration.
  
  Parameters:
  
      model (Optional[BaseAE]): An instance of :class:`~pythae.models.BaseAE` you want to train.
          If None, a default :class:`~pythae.models.VAE` model is used. Default: None.
  
      training_config (Optional[BaseTrainerConfig]): An instance of
          :class:`~pythae.trainers.BaseTrainerConfig` stating the training
          parameters. If None, a default configuration is used.
code: def __init__(
      self,
      model: Optional[BaseAE],
      sampler_config: Optional[BaseSamplerConfig] = None,
  ):
      if sampler_config is None:
          sampler_config = NormalSamplerConfig()
  
      if sampler_config.name == "NormalSamplerConfig":
          sampler = NormalSampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "GaussianMixtureSamplerConfig":
          sampler = GaussianMixtureSampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "IAFSamplerConfig":
          sampler = IAFSampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "MAFSamplerConfig":
          sampler = MAFSampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "RHVAESamplerConfig":
          sampler = RHVAESampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "PixelCNNSamplerConfig":
          sampler = PixelCNNSampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "TwoStageVAESamplerConfig":
          sampler = TwoStageVAESampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "VAMPSamplerConfig":
          sampler = VAMPSampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "HypersphereUniformSamplerConfig":
          sampler = HypersphereUniformSampler(
              model=model, sampler_config=sampler_config
          )
  
      elif sampler_config.name == "PoincareDiskSamplerConfig":
          sampler = PoincareDiskSampler(
              model=model, sampler_config=sampler_config
          )
  
      else:
          raise NotImplementedError(
              "Unrecognized sampler config name... Check that that the sampler_config name "
              f"is written correctly. Got '{sampler_config.name}'."
          )
  
      self.sampler = sampler
  
file_path: benchmark_VAE/src/pythae/pipelines/generation.py
imports: import logging
  from typing import Optional, Union
  import numpy
  import torch
  from ..models import BaseAE
  from ..samplers import *
  from ..trainers import BaseTrainerConfig
  from .base_pipeline import Pipeline
label_desc: Use image node_id 1 to create a new GenerationPipeline object from inherited base classes: Pipeline with example: obj = GenerationPipeline(model, sampler_config)