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
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()