Bird
Raised Fist0
TensorFlowml~5 mins

GAN concept (generator and discriminator) in TensorFlow - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the role of the generator in a GAN?
The generator creates fake data that looks like real data to fool the discriminator. It learns to produce outputs that are increasingly realistic over time.
Click to reveal answer
beginner
What does the discriminator do in a GAN?
The discriminator tries to tell apart real data from fake data made by the generator. It learns to become better at spotting fakes.
Click to reveal answer
intermediate
How do the generator and discriminator work together in a GAN?
They play a game: the generator tries to fool the discriminator with fake data, while the discriminator tries to catch the fakes. This competition helps both improve.
Click to reveal answer
intermediate
Why is the training of GANs called an adversarial process?
Because the generator and discriminator have opposite goals and compete against each other, like opponents in a game, improving through this rivalry.
Click to reveal answer
beginner
What kind of data can GANs generate?
GANs can generate many types of data like images, music, text, or videos by learning the patterns of real examples.
Click to reveal answer
What is the main goal of the generator in a GAN?
ATo create data that looks real
BTo classify real and fake data
CTo reduce the size of the dataset
DTo label data correctly
What does the discriminator in a GAN do?
ACompresses data for storage
BGenerates new data samples
CDistinguishes between real and fake data
DLabels data for supervised learning
Why do GANs improve over time during training?
ABecause the model uses more layers
BBecause the generator and discriminator cooperate
CBecause the data size increases
DBecause the generator and discriminator compete
Which of these is NOT a typical use of GANs?
ASorting data into categories
BCreating fake videos
CGenerating realistic images
DMaking music samples
What type of learning is used in training GANs?
ASupervised learning
BAdversarial learning
CReinforcement learning
DUnsupervised learning
Explain in your own words how the generator and discriminator interact in a GAN.
Think of it like a game between a counterfeiter and a detective.
You got /4 concepts.
    Describe why GAN training is considered adversarial and how this helps the model learn.
    Focus on the idea of two players with opposite aims.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What is the main role of the generator in a GAN?

      easy
      A. To classify data as real or fake
      B. To create fake data that looks real
      C. To label data for supervised learning
      D. To reduce the size of the dataset

      Solution

      1. Step 1: Understand the generator's purpose

        The generator's job is to produce new data that mimics real data.
      2. Step 2: Differentiate from discriminator

        The discriminator checks data authenticity, but the generator creates fake data.
      3. Final Answer:

        To create fake data that looks real -> Option B
      4. Quick Check:

        Generator = create fake data [OK]
      Hint: Generator makes fake data, discriminator checks it [OK]
      Common Mistakes:
      • Confusing generator with discriminator
      • Thinking generator labels data
      • Assuming generator reduces data size
      2.

      Which of the following is the correct way to define a simple generator model in TensorFlow Keras?

      def make_generator_model():
          model = tf.keras.Sequential([
              tf.keras.layers.Dense(7*7*256, use_bias=False, input_shape=(100,)),
              tf.keras.layers.BatchNormalization(),
              tf.keras.layers.LeakyReLU(),
              tf.keras.layers.Reshape((7, 7, 256)),
              tf.keras.layers.Conv2DTranspose(128, 5, strides=1, padding='same', use_bias=False),
              tf.keras.layers.BatchNormalization(),
              tf.keras.layers.LeakyReLU(),
              tf.keras.layers.Conv2DTranspose(1, 5, strides=2, padding='same', activation='tanh')
          ])
          return model
      
      easy
      A. The model is missing an input layer
      B. The activation function 'tanh' is incorrect for generator output
      C. The code correctly defines a generator model
      D. The Dense layer should have bias enabled

      Solution

      1. Step 1: Check model layers and input

        The model starts with a Dense layer with input_shape=(100,), which is correct for noise input.
      2. Step 2: Verify output activation and structure

        The last Conv2DTranspose uses 'tanh' activation, common for generator output scaled between -1 and 1.
      3. Final Answer:

        The code correctly defines a generator model -> Option C
      4. Quick Check:

        Generator model code is correct [OK]
      Hint: Generator output often uses tanh activation [OK]
      Common Mistakes:
      • Forgetting input_shape in first layer
      • Using wrong activation for output layer
      • Enabling bias unnecessarily in Dense layer
      3.

      Given the following code snippet for a discriminator model, what will be the output shape after the last Conv2D layer?

      model = tf.keras.Sequential([
          tf.keras.layers.Conv2D(64, 5, strides=2, padding='same', input_shape=(28, 28, 1)),
          tf.keras.layers.LeakyReLU(),
          tf.keras.layers.Dropout(0.3),
          tf.keras.layers.Conv2D(128, 5, strides=2, padding='same'),
          tf.keras.layers.LeakyReLU(),
          tf.keras.layers.Dropout(0.3),
          tf.keras.layers.Flatten(),
          tf.keras.layers.Dense(1)
      ])
      
      medium
      A. (7, 7, 128)
      B. (14, 14, 128)
      C. (28, 28, 64)
      D. (1, 1, 1)

      Solution

      1. Step 1: Calculate output after first Conv2D

        Input is (28,28,1), stride=2, padding='same' halves spatial dims: (14,14,64).
      2. Step 2: Calculate output after second Conv2D

        Again stride=2, padding='same' halves spatial dims: (7,7,128).
      3. Final Answer:

        (7, 7, 128) -> Option A
      4. Quick Check:

        Conv2D output shape = (7,7,128) [OK]
      Hint: Stride 2 halves spatial dimensions with 'same' padding [OK]
      Common Mistakes:
      • Forgetting padding='same' keeps output size rounded up
      • Misapplying stride effect on dimensions
      • Confusing number of filters with spatial size
      4.

      Identify the error in this GAN training step code snippet:

      noise = tf.random.normal([batch_size, noise_dim])
      generated_images = generator(noise, training=True)
      real_output = discriminator(real_images, training=True)
      fake_output = discriminator(generated_images, training=False)
      
      loss = generator_loss(fake_output) + discriminator_loss(real_output, fake_output)
      
      medium
      A. Discriminator should be in training mode for fake images
      B. Generator should not use training=True during generation
      C. Noise shape is incorrect for generator input
      D. Loss calculation should not combine generator and discriminator losses

      Solution

      1. Step 1: Check discriminator training mode

        Discriminator must be in training mode for both real and fake images to update weights properly.
      2. Step 2: Identify incorrect training flag

        Here, discriminator(fake images) uses training=False, which disables training behavior like dropout.
      3. Final Answer:

        Discriminator should be in training mode for fake images -> Option A
      4. Quick Check:

        Discriminator training mode = True for all inputs [OK]
      Hint: Discriminator trains on both real and fake data [OK]
      Common Mistakes:
      • Setting discriminator training=False on fake data
      • Confusing generator training flag
      • Incorrect noise shape assumptions
      5.

      You want to improve a GAN to generate clearer images. Which combined approach is best?

      1. Increase generator depth and add batch normalization
      2. Use a weaker discriminator to avoid overpowering generator
      3. Train discriminator more times per generator update
      4. Remove dropout layers from discriminator
      hard
      A. Options 2 and 4 together are best
      B. Options 1 and 2 together are best
      C. Only option 1 is best
      D. Options 1 and 3 together are best

      Solution

      1. Step 1: Evaluate option 1

        Increasing generator depth and adding batch normalization helps create clearer, stable images.
      2. Step 2: Evaluate option 3

        Training discriminator more per generator update helps discriminator learn better, pushing generator to improve.
      3. Step 3: Assess options 2 and 4

        Weaker discriminator or removing dropout can reduce training quality and cause poor results.
      4. Final Answer:

        Options 1 and 3 together are best -> Option D
      5. Quick Check:

        Improve generator + stronger discriminator training = better images [OK]
      Hint: Stronger generator + more discriminator training = clearer images [OK]
      Common Mistakes:
      • Weakening discriminator hurts GAN balance
      • Removing dropout may cause overfitting
      • Ignoring batch normalization benefits
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard