def __init__(self, D_obs, D_act, hidden_sizes=[64, 64], init_log_sig=0):
        '''
            Constructor for PPO actor network
            Args: 
                D_obs: observation space dimension, scalar
                D_act: action space dimension, scalar
                hidden_sizes: list of fully connected dimension
                init_log_sig: initial value for log standard deviation parameter
        '''
        super(PPO_ActorNetwork, self).__init__()
        # assumes D_obs here is the correct RNN hidden dim
        xp_input = L.Placeholder((None, D_obs))
        xp = L.Linear(hidden_sizes[0])(xp_input)
        xp = L.ReLU()(xp)
        xp = L.Linear(hidden_sizes[1])(xp)
        xp = L.ReLU()(xp)
        xp = L.Linear(D_act)(xp)
        xp = L.Tanh()(xp)

        self.model = L.Functional(inputs=xp_input, outputs=xp)
        self.model.build((None, D_obs))

        self.log_var = nn.Parameter(torch.zeros(1, D_act) + init_log_sig)

            Constructor for PPO actor network
            Args: 
                D_obs: observation space dimension, scalar
                D_act: action space dimension, scalar
                hidden_sizes: list of fully connected dimension
                init_log_sig: initial value for log standard deviation parameter
        
surreal/model/model_builders/builders.py