Defined in tensorflow/contrib/gan/python/

Returns an ACGANModel contains all the pieces needed for ACGAN training.

The acgan_model is the same as the gan_model with the only difference being that the discriminator additionally outputs logits to classify the input (real or generated). Therefore, an explicit field holding one_hot_labels is necessary, as well as a discriminator_fn that outputs a 2-tuple holding the logits for real/fake and classification.

See for more details.


  • generator_fn: A python lambda that takes generator_inputs 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 tuple consisting of two Tensors: (1) real/fake logits in the range -inf, inf classification logits in the range [-inf, inf]
  • real_data: A Tensor representing the real data.
  • generator_inputs: A Tensor or list of Tensors to the generator. In the vanilla GAN case, this might be a single noise Tensor. In the conditional GAN case, this might be the generator's conditioning.
  • one_hot_labels: A Tensor holding one-hot-labels for the batch. Needed by acgan_loss.
  • 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.
  • check_shapes: If True, check that generator produces Tensors that are the same shape as real data. Otherwise, skip this check.


A ACGANModel namedtuple.


  • ValueError: If the generator outputs a Tensor that isn't the same shape as real_data.
  • TypeError: If the discriminator does not output a tuple consisting of (discrimination logits, classification logits).