tf.contrib.gan.infogan_model

tf.contrib.gan.infogan_model(
generator_fn,
discriminator_fn,
real_data,
unstructured_generator_inputs,
structured_generator_inputs,
generator_scope='Generator',
discriminator_scope='Discriminator'
)


Returns an InfoGAN model outputs and variables.

See https://arxiv.org/abs/1606.03657 for more details.

Args:

• generator_fn: A python lambda that takes a list of Tensors as inputs and returns the outputs of the GAN generator.
• discriminator_fn: A python lambda that takes real_data/generated data and generator_inputs. Outputs a 2-tuple of (logits, distribution_list). logits are in the range [-inf, inf], and distribution_list is a list of Tensorflow distributions representing the predicted noise distribution of the ith structure noise.
• real_data: A Tensor representing the real data.
• unstructured_generator_inputs: A list of Tensors to the generator. These tensors represent the unstructured noise or conditioning.
• structured_generator_inputs: A list of Tensors to the generator. These tensors must have high mutual information with the recognizer.
• generator_scope: Optional generator variable scope. Useful if you want to reuse a subgraph that has already been created.
• discriminator_scope: Optional discriminator variable scope. Useful if you want to reuse a subgraph that has already been created.

Returns:

An InfoGANModel namedtuple.

Raises:

• ValueError: If the generator outputs a Tensor that isn't the same shape as real_data.
• ValueError: If the discriminator output is malformed.