class_docstr: Variational Auto Encoder with linear Normalizing Flows model.
  
  Args:
      model_config(VAE_LinNF_Config): The Variational Autoencoder configuration seting the main
      parameters of the model
  
      encoder (BaseEncoder): An instance of BaseEncoder (inheriting from `torch.nn.Module` which
          plays the role of encoder. This argument allows you to use your own neural networks
          architectures if desired. If None is provided, a simple Multi Layer Preception
          (https://en.wikipedia.org/wiki/Multilayer_perceptron) is used. Default: None.
  
      decoder (BaseDecoder): An instance of BaseDecoder (inheriting from `torch.nn.Module` which
          plays the role of decoder. This argument allows you to use your own neural networks
          architectures if desired. If None is provided, a simple Multi Layer Preception
          (https://en.wikipedia.org/wiki/Multilayer_perceptron) is used. Default: None.
  
      flows (List[str]): A list of strings corresponding to the class of each flow to be applied.
          Default: Empty list (no flow is applied).
  
  .. note::
      For high dimensional data we advice you to provide you own network architectures. With the
      provided MLP you may end up with a ``MemoryError``.
class_docstr_tok: ["Variational","Auto","Encoder","with","linear","Normalizing","Flows","model",".","Args",":","model_config","(","VAE_LinNF_Config",")",":","The","Variational","Autoencoder","configuration","seting","the","main","parameters","of","the","model","encoder","(","BaseEncoder",")",":","An","instance","of","BaseEncoder","(","inheriting","from","`","torch.nn.Module","`","which","plays","the","role","of","encoder",".","This","argument","allows","you","to","use","your","own","neural","networks","architectures","if","desired",".","If","None","is","provided",",","a","simple","Multi","Layer","Preception","(","https",":","\/\/en.wikipedia.org\/wiki\/Multilayer_perceptron",")","is","used",".","Default",":","None",".","decoder","(","BaseDecoder",")",":","An","instance","of","BaseDecoder","(","inheriting","from","`","torch.nn.Module","`","which","plays","the","role","of","decoder",".","This","argument","allows","you","to","use","your","own","neural","networks","architectures","if","desired",".","If","None","is","provided",",","a","simple","Multi","Layer","Preception","(","https",":","\/\/en.wikipedia.org\/wiki\/Multilayer_perceptron",")","is","used",".","Default",":","None",".","flows","(","List","[","str","]",")",":","A","list","of","strings","corresponding","to","the","class","of","each","flow","to","be","applied",".","Default",":","Empty","list","(","no","flow","is","applied",")",".","..","note",":",":","For","high","dimensional","data","we","advice","you","to","provide","you","own","network","architectures",".","With","the","provided","MLP","you","may","end","up","with","a","``","MemoryError","``","."]
code: def _sample_gauss(self, mu, std):
      # Reparametrization trick
      # Sample N(0, I)
      eps = torch.randn_like(std)
      return mu + eps * std, eps
  
file_path: benchmark_VAE/src/pythae/models/vae_lin_nf/vae_lin_nf_model.py
imports: import os
  from typing import Optional
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from ...data.datasets import BaseDataset
  from ..base.base_utils import ModelOutput
  from ..nn import BaseDecoder, BaseEncoder
  from ..normalizing_flows import PlanarFlow, PlanarFlowConfig, RadialFlow, RadialFlowConfig
  from ..vae import VAE
  from .vae_lin_nf_config import VAE_LinNF_Config
label_desc: Use image node_id 4 for calling the VAE_LinNF obj's underlying member method code with example usage: obj._sample_gauss(mu, std) and returns: unknown,  eps