예제 #1
0
def view_digit(identifier, epoch, digit, n_samples=6):
    """
    Generate a bunch of MNIST digits from a CGAN, view them
    """
    settings = json.load(
        open('./experiments/settings/' + identifier + '.txt', 'r'))
    if settings['one_hot']:
        assert settings['max_val'] == 1
        assert digit <= settings['cond_dim']
        C_samples = np.zeros(shape=(n_samples, settings['cond_dim']))
        C_samples[:, digit] = 1
    else:
        assert settings['cond_dim'] == 1
        assert digit <= settings['max_val']
        C_samples = np.array([digit] * n_samples).reshape(-1, 1)
    digit_samples = model.sample_trained_model(settings,
                                               epoch,
                                               n_samples,
                                               Z_samples=None,
                                               cond_dim=settings['cond_dim'],
                                               C_samples=C_samples)
    digit_samples = digit_samples.reshape(n_samples, -1, 1)
    # visualise
    plotting.save_mnist_plot_sample(digit_samples, digit,
                                    identifier + '_' + str(epoch) + '_digit_',
                                    n_samples)
    return True
예제 #2
0
vis_Z = model.sample_Z(batch_size, seq_length, latent_dim, use_time)
vis_C = model.sample_C(batch_size, cond_dim, max_val, one_hot)
# vis_C[:1] = np.arange(cond_dim)
vis_sample = sess.run(G_sample, feed_dict={Z: vis_Z, CG: vis_C})

vis_real_indices = np.random.choice(len(samples['vali']), size=6)
vis_real = np.float32(samples['vali'][vis_real_indices, :, :])
vis_real_labels = labels['vali'][vis_real_indices]

samps = vis_real
labs = vis_real_labels

plotting.save_mnist_plot_sample(samps.reshape(-1, seq_length**2, 1),
                                0,
                                identifier + '_real',
                                n_samples=6,
                                labels=labs)

trace = open('./experiments/traces/' + identifier + '.trace.txt', 'w')
trace.write('epoch time D_loss G_loss mmd2\n')

# # --- train --- #
train_vars = [
    'batch_size', 'D_rounds', 'G_rounds', 'use_time', 'seq_length',
    'latent_dim', 'num_generated_features', 'cond_dim', 'max_val', 'WGAN_clip',
    'one_hot'
]
train_settings = dict((k, settings[k]) for k in train_vars)

t0 = time()