예제 #1
0
def bottleneck_layer(targets_c, hparams):
    """Compute latents from compressed targets."""
    latents_discrete_hot, extra_loss = discretization.parametrized_bottleneck(
        targets_c, hparams)
    latents_dense = discretization.parametrized_unbottleneck(
        latents_discrete_hot, hparams.hidden_size, hparams)
    latents_discrete = tf.argmax(latents_discrete_hot, axis=-1)

    if DO_SUMMARIES:
        tf.summary.histogram("b0", tf.reshape(latents_discrete, [-1]))
    return latents_dense, latents_discrete, extra_loss
예제 #2
0
def bottleneck_layer(targets_c, hparams):
  """Compute latents from compressed targets."""
  latents_discrete_hot, extra_loss = discretization.parametrized_bottleneck(
      targets_c, hparams)
  latents_dense = discretization.parametrized_unbottleneck(
      latents_discrete_hot, hparams.hidden_size, hparams)
  latents_dense = targets_c + tf.stop_gradient(latents_dense - targets_c)
  latents_discrete = tf.argmax(latents_discrete_hot, axis=-1)

  if DO_SUMMARIES:
    tf.summary.histogram("b0", tf.reshape(latents_discrete, [-1]))
  return latents_dense, latents_discrete_hot, extra_loss
예제 #3
0
 def unbottleneck(self, x, res_size, reuse=None):
   with tf.variable_scope("unbottleneck", reuse=reuse):
     return discretization.parametrized_unbottleneck(x, res_size, self.hparams)
예제 #4
0
 def unbottleneck(self, x, res_size):
   return discretization.parametrized_unbottleneck(x, res_size, self.hparams)