def up(self,h):
h_up = slim.fully_connected(h,self.hps.h_size,activation_fn=tf.nn.relu)
if self.var_type == 'discrete':
# q_z
self.K = K = self.hps.K
self.N = N = self.hps.N
h_up = slim.fully_connected(h_up,K*N,activation_fn=None)
self.logits_q = tf.reshape(h_up,[-1,K]) # unnormalized logits for N separate K-categorical distributions (shape=(batch_size*N,K))
h_out = slim.fully_connected(h_up,self.hps.h_size,activation_fn=None)
elif self.var_type == 'continuous':
hps = self.hps
z_size = hps.z_size
h_size = hps.h_size
h_up = slim.fully_connected(h_up,h_size,activation_fn=None)
h_up = slim.fully_connected(h,z_size*2 + h_size,activation_fn=None)
self.qz_mean, self.qz_logsd, h_out = split(h_up, 1, [z_size, z_size, h_size])
if self.hps.resnet:
return h + 0.2 * h_out
else:
return h_out
评论列表
文章目录