0

I am using original DCGAN MNIST code (keras) for my project . My task is to generate an array and then I'll calculate some observables from that . I am saving model after each epochs so that I can find for which epoch I am getting best observables. I have used 50 Epochs so I have 50 saved checkpoints . Now I want to generate array (by generator) using some intermediate saved checkpoint so how should I load data from that ? Code that I used for saving checkpoint is as follows:



checkpoint_dir = "./training_checkpoints"
checkpoint_prefix = os.path.join(checkpoint_dir, "ckpt")
checkpoint = tf.train.Checkpoint(generator_optimizer=generator_optimizer,
                                 discriminator_optimizer=discriminator_optimizer,
                                 generator=generator,
                                 discriminator=discriminator)

It saves two types of files: ckpt-1.data-00000-of-00001 and ckpt-1.index.

How do I generate that array from it?? (Note: 'Array' that I want is something analogous to pixel array generated in MNIST case)

AloneTogether
  • 25,814
  • 5
  • 20
  • 39
Barry
  • 103
  • 4

1 Answers1

1

You can use tf.train.CheckpointManager to load your latest checkpoint or whatever checkpoint you like and then generate some images with your generator model based on random noise:

import tensorflow as tf

checkpoint_dir = "./training_checkpoints"
checkpoint_prefix = os.path.join(checkpoint_dir, "ckpt")
checkpoint = tf.train.Checkpoint(generator_optimizer=generator_optimizer,
                                 discriminator_optimizer=discriminator_optimizer,
                                 generator=generator,
                                 discriminator=discriminator)
ckpt_manager = tf.train.CheckpointManager(checkpoint, checkpoint_dir, max_to_keep=5)
if ckpt_manager.latest_checkpoint:
    checkpoint.restore(ckpt_manager.latest_checkpoint)
    # You can also access previous checkpoints like this: ckpt_manager.checkpoints[3]
    print ('Latest checkpoint restored!!')
    batch_size = 8
    latent_dim = 32
    noise = tf.random.normal([batch_size, latent_dim])
    generated_images = generator(noise, training=False)
    # Plot and/or save your images.
AloneTogether
  • 25,814
  • 5
  • 20
  • 39