plt.ylim(-5, 5) plt.gca().set_aspect('equal', adjustable='box') ut.load_model_by_name(model, opt.eval_model, global_step=opt.eval_model_iter) model.eval() os.makedirs(os.path.join("plots", opt.dataset), exist_ok=True) results = defaultdict(list) is_full = set() i = 0 for x, y in train_gen: if len(is_full) > 1 and len(is_full) == len(results): break i += 1 z = model.encode(x.to(device), y.to(device)).cpu().data.numpy() x_np = x.cpu().data.numpy() y_np = y.cpu().data.numpy() for cls, latent in zip(y_np, z): cls = cls[0] if len(results[cls]) < opt.latent_max: results[cls].append(latent) elif len(results[cls]) == opt.latent_max: is_full.add(cls) latent_list = [] pca = PCA(n_components=2) init_figure() for cls, latent in results.items(): latent = np.stack(latent, axis=0) latent_list.append(latent) latent_r = pca.fit_transform(latent)
for i in range(predictions.shape[0]): plt.subplot(4, 4, i + 1) plt.imshow(predictions[i, :, :, 0], cmap='gray') plt.axis('off') file_dir = './image/'+ dire if not os.path.exists(file_dir): os.makedirs(file_dir) plt.savefig(file_dir +'/image_at_epoch_{:04d}.png'.format(degree)) plt.close() def generate_images(model, data): fig = plt.figure(figsize=(4, 4)) for i in range(data.shape[0]): plt.subplot(4, 4, i + 1) plt.imshow(data[i, :, :, 0], cmap='gray') plt.axis('off') plt.show() for i in range(1, 6): model = CVAE(latent_dim=16, beta=i) checkpoint = tf.train.Checkpoint(model=model) checkpoint.restore("checkpoints/2_20method" + str(i) + "/ckpt-10") mean, logvar = model.encode(test_sample) r_m = np.identity(model.latent_dim) z = model.reparameterize(mean, logvar) theta = np.radians(60) c, s = np.cos(theta), np.sin(theta) r_m[0, [0, 1]], r_m[1, [0, 1]] = [c, s], [-s, c] rota_z = matvec(tf.cast(r_m, dtype=tf.float32), z) phi_z = model.decode(rota_z) generate_and_save_images(phi_z, 1, 'test3' + "/beta_test" + str(i))