docstr: Initializes CEVAE.
  
      Args:
          outcome_dist (str): Outcome distribution as one of: "bernoulli" , "exponential", "laplace", "normal",
                              and "studentt"
          latent_dim (int) : Dimension of the latent variable
          hidden_dim (int) : Dimension of hidden layers of fully connected networks
          num_epochs (int): Number of training epochs
          num_layers (int): Number of hidden layers in fully connected networks
          batch_size (int): Batch size
          learning_rate (int): Learning rate
          learning_rate_decay (float/int): Learning rate decay over all epochs; the per-step decay rate will
                                           depend on batch size and number of epochs such that the initial
                                           learning rate will be learning_rate and the
                                           final learning rate will be learning_rate * learning_rate_decay
          num_samples (int) : Number of samples to calculate ITE
          weight_decay (float) : Weight decay
docstr_tok: ["Initializes","CEVAE",".","Args",":","outcome_dist","(","str",")",":","Outcome","distribution","as","one","of",":","``","bernoulli","''",",","``","exponential","''",",","``","laplace","''",",","``","normal","''",",","and","``","studentt","''","latent_dim","(","int",")",":","Dimension","of","the","latent","variable","hidden_dim","(","int",")",":","Dimension","of","hidden","layers","of","fully","connected","networks","num_epochs","(","int",")",":","Number","of","training","epochs","num_layers","(","int",")",":","Number","of","hidden","layers","in","fully","connected","networks","batch_size","(","int",")",":","Batch","size","learning_rate","(","int",")",":","Learning","rate","learning_rate_decay","(","float\/int",")",":","Learning","rate","decay","over","all","epochs",";","the","per-step","decay","rate","will","depend","on","batch","size","and","number","of","epochs","such","that","the","initial","learning","rate","will","be","learning_rate","and","the","final","learning","rate","will","be","learning_rate","*","learning_rate_decay","num_samples","(","int",")",":","Number","of","samples","to","calculate","ITE","weight_decay","(","float",")",":","Weight","decay"]
code: def __init__(
      self,
      outcome_dist="studentt",
      latent_dim=20,
      hidden_dim=200,
      num_epochs=50,
      num_layers=3,
      batch_size=100,
      learning_rate=1e-3,
      learning_rate_decay=0.1,
      num_samples=1000,
      weight_decay=1e-4,
  ):
      """
      Initializes CEVAE.
  
          Args:
              outcome_dist (str): Outcome distribution as one of: "bernoulli" , "exponential", "laplace", "normal",
                                  and "studentt"
              latent_dim (int) : Dimension of the latent variable
              hidden_dim (int) : Dimension of hidden layers of fully connected networks
              num_epochs (int): Number of training epochs
              num_layers (int): Number of hidden layers in fully connected networks
              batch_size (int): Batch size
              learning_rate (int): Learning rate
              learning_rate_decay (float/int): Learning rate decay over all epochs; the per-step decay rate will
                                               depend on batch size and number of epochs such that the initial
                                               learning rate will be learning_rate and the
                                               final learning rate will be learning_rate * learning_rate_decay
              num_samples (int) : Number of samples to calculate ITE
              weight_decay (float) : Weight decay
      """
      self.outcome_dist = outcome_dist
      self.latent_dim = latent_dim
      self.hidden_dim = hidden_dim
      self.num_epochs = num_epochs
      self.num_layers = num_layers
      self.batch_size = batch_size
      self.learning_rate = learning_rate
      self.learning_rate_decay = learning_rate_decay
      self.num_samples = num_samples
      self.weight_decay = weight_decay
  
file_path: causalml/causalml/inference/nn/cevae.py
imports: import logging
  import torch
  from pyro.contrib.cevae import CEVAE
  from causalml.inference.meta.utils import convert_pd_to_np
label_desc: Use image node_id 1 to create a new CEVAE object  with example: obj = CEVAE(outcome_dist, latent_dim, hidden_dim, num_epochs, num_layers, batch_size, learning_rate, learning_rate_decay, num_samples, weight_decay)