add fix_noise option
This commit is contained in:
@@ -159,8 +159,12 @@ class CVAE(tf.keras.Model):
|
|||||||
return x
|
return x
|
||||||
|
|
||||||
|
|
||||||
def reparameterize(self, mean, logvar):
|
def reparameterize(self, mean, logvar, fix_noise=False):
|
||||||
|
if not fix_noise:
|
||||||
eps = tf.random.normal(shape=mean.shape)
|
eps = tf.random.normal(shape=mean.shape)
|
||||||
|
else:
|
||||||
|
eps = tf.random.normal(shape=(1, mean.shape[1]))
|
||||||
|
eps = tf.tile(eps, [mean.shape[0],1])
|
||||||
return eps * tf.exp(logvar * .5) + mean
|
return eps * tf.exp(logvar * .5) + mean
|
||||||
|
|
||||||
|
|
||||||
@@ -172,7 +176,7 @@ class CVAE(tf.keras.Model):
|
|||||||
return logits
|
return logits
|
||||||
|
|
||||||
|
|
||||||
def call(self, inputs, training=None, zero_latent=False):
|
def call(self, inputs, training=None, zero_latent=False, fix_noise=False):
|
||||||
uv_unposed, uv_template, uv_body_posed, uv_curv = inputs
|
uv_unposed, uv_template, uv_body_posed, uv_curv = inputs
|
||||||
uv_unposed, uv_template, uv_body_posed = tf.transpose(uv_unposed, [0,2,3,1]), tf.transpose(uv_template, [0,2,3,1]), tf.transpose(uv_body_posed, [0,2,3,1])
|
uv_unposed, uv_template, uv_body_posed = tf.transpose(uv_unposed, [0,2,3,1]), tf.transpose(uv_template, [0,2,3,1]), tf.transpose(uv_body_posed, [0,2,3,1])
|
||||||
z_static = self.static_enc(uv_template)
|
z_static = self.static_enc(uv_template)
|
||||||
@@ -182,7 +186,7 @@ class CVAE(tf.keras.Model):
|
|||||||
x = tf.concat([uv_unposed, uv_template, uv_body_posed, uv_curv], axis=-1)
|
x = tf.concat([uv_unposed, uv_template, uv_body_posed, uv_curv], axis=-1)
|
||||||
|
|
||||||
mean, logvar = self.encoder(x)
|
mean, logvar = self.encoder(x)
|
||||||
z = self.reparameterize(mean, logvar)
|
z = self.reparameterize(mean, logvar, fix_noise)
|
||||||
z_cond = tf.concat([z_static, z_body, z_curv], axis=-1)
|
z_cond = tf.concat([z_static, z_body, z_curv], axis=-1)
|
||||||
z_cond = self.cond_encoder(z_cond)
|
z_cond = self.cond_encoder(z_cond)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user