def __init__(self, dim_z2h, dim_h2v, activation_fn=tf.nn.relu, temp=.1, hard=False, train_pi=True): self.prior_h = NADE(dim_z2h[1], dim_z2h[0], temp) self.dim_h2v = dim_h2v self.w_h2v, self.b_h2v = [], [] if activation_fn == tf.nn.relu: const = 1.0 else: const = 4.0 assert len(self.dim_h2v) > 1 for d1, d2, i in zip(dim_h2v[:-1], dim_h2v[1:], xrange(1, len(self.dim_h2v))): self.w_h2v.append( tfe.Variable(tf_xavier_init(d1, d2, const=const), name='sbn.w_h2v.' + str(i))) self.b_h2v.append( tfe.Variable(tf.zeros([d2]), dtype=tf.float32, name='sbn.b_h2v.' + str(i))) self.activation_fn = activation_fn self.temp = temp self.hard = hard
def build_model(dataset, trainingparams, hyperparams, hidden_size): print '\n### Initializing NADE ... ', start_time = t.time() model = NADE(dataset, learning_rate=trainingparams['learning_rate'], decrease_constant=trainingparams['decrease_constant'], hidden_size=hidden_size, random_seed=hyperparams['random_seed'], batch_size=trainingparams['batch_size'], hidden_activation=activation_functions[hyperparams['hidden_activation']], momentum=trainingparams['momentum'], dropout_rate=trainingparams['dropout_rate'], weights_initialization=hyperparams['weights_initialization'], tied=hyperparams['tied']) print utils.get_done_text(start_time), "###" # printParams(model) return model
def __init__(self, dim_zh2, dims_h2h1, dims_h1v, activation_fn=tf.nn.relu, temp=.1, hard=False, train_pi=True): self.prior_h2 = NADE(dim_zh2[1], dim_zh2[0], temp) self.dec_h2h1 = DEC(dims_h2h1, name='h2h1', activation_fn=activation_fn, temp=temp, hard=hard) self.dec_h1v = DEC(dims_h1v, name='h1v', activation_fn=activation_fn, temp=temp, hard=hard)
def __init__(self, num_dims, num_hidden, temp=.1, hard=False): self.nade = NADE(num_dims, num_hidden, temperature=temp, hard=hard)