コード例 #1
0
        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)
コード例 #2
0
ファイル: test.py プロジェクト: sd2880358/ori_autoencoder
    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))