示例#1
0
def main():
    images, labels = dataset.load_test_images()
    num_scatter = len(images)
    _images, _, label_id = dataset.sample_labeled_data(images, labels,
                                                       num_scatter)
    with tf.device(config.device):
        t = build_graph(is_test=True)

    with tf.Session(config=tf.ConfigProto(allow_soft_placement=True,
                                          log_device_placement=True)) as sess:
        saver = tf.train.Saver()
        saver.restore(sess, tf.train.latest_checkpoint(config.ckpt_dir))
        z, _x = sess.run(
            [t.z_r, t.x_r],
            feed_dict={
                t.x: _images,
                t.z_prior:
                np.random.normal(size=(len(_images), config.ndim_noise))
            })

        plot.scatter_labeled_z(z, label_id, dir=config.ckpt_dir)
        plot.tile_images(_x[:100], dir=config.ckpt_dir)
        plot.plot_loss_tendency(config.ckpt_dir)

    hist_value, hist_head = plot.load_pickle_to_data(config.ckpt_dir)
    for loss_name in ['reconstruction']:
        plot.plot_loss_trace(hist_value[loss_name], loss_name, config.ckpt_dir)

    plot.plot_adversarial_trace(hist_value['discriminator'],
                                hist_value['generator'], 'z', config.ckpt_dir)
示例#2
0
def main():
    # load MNIST images
    images, labels = dataset.load_test_images()

    # Settings
    num_scatter = len(images)
    _images, _, label_id = dataset.sample_labeled_data(images, labels,
                                                       num_scatter)

    with tf.device(config.device):
        t = build_graph(is_test=True)

    with tf.Session(config=tf.ConfigProto(allow_soft_placement=True,
                                          log_device_placement=True)) as sess:
        saver = tf.train.Saver()
        saver.restore(sess, tf.train.latest_checkpoint(config.ckpt_dir))
        representation, x_reconstruction = sess.run([t.yz, t.x_r],
                                                    feed_dict={t.x: _images})
        plot.scatter_labeled_z(representation, label_id, dir=config.ckpt_dir)
        plot.tile_images(x_reconstruction[:100], dir=config.ckpt_dir)

        hist_value, hist_head = plot.load_pickle_to_data(config.ckpt_dir)
        for loss_name in ['reconstruction']:
            plot.plot_loss_trace(hist_value[loss_name], loss_name,
                                 config.ckpt_dir)

        plot.plot_adversarial_trace(hist_value['discriminator_y'],
                                    hist_value['generator_y'], 'y',
                                    config.ckpt_dir)
        plot.plot_adversarial_trace(hist_value['discriminator_z'],
                                    hist_value['generator_z'], 'z',
                                    config.ckpt_dir)
示例#3
0
def main():
    # load MNIST images
    images, labels = dataset.load_test_images()

    # Settings
    num_anologies = 10
    pylab.gray()

    # generate style vector z
    x = dataset.sample_unlabeled_data(images, num_anologies)
    x = (x + 1) / 2

    with tf.device(config.device):
        x_input, img_y, img_z, reconstruction = build_graph(is_test=True)

    with tf.Session(config=tf.ConfigProto(allow_soft_placement=True,
                                          log_device_placement=True)) as sess:
        saver = tf.train.Saver()
        saver.restore(sess, tf.train.latest_checkpoint(config.ckpt_dir))
        z = sess.run(img_z, feed_dict={x_input: x})

        for m in range(num_anologies):
            pylab.subplot(num_anologies, config.ndim_y + 2, m * 12 + 1)
            pylab.imshow(x[m].reshape((28, 28)), interpolation='none')
            pylab.axis('off')

        all_y = np.identity(config.ndim_y, dtype=np.float32)
        for m in range(num_anologies):
            fixed_z = np.repeat(z[m].reshape(1, -1), config.ndim_y, axis=0)
            gen_x = sess.run(reconstruction,
                             feed_dict={
                                 img_z: fixed_z,
                                 img_y: all_y
                             })
            gen_x = (gen_x + 1) / 2

            for n in range(config.ndim_y):
                pylab.subplot(num_anologies, config.ndim_y + 2, m * 12 + 3 + n)
                pylab.imshow(gen_x[n].reshape((28, 28)), interpolation='none')
                pylab.axis('off')

        fig = pylab.gcf()
        fig.set_size_inches(num_anologies, config.ndim_y)
        pylab.savefig('{}/analogy.png'.format(config.ckpt_dir))

        hist_value, hist_head = plot.load_pickle_to_data(config.ckpt_dir)
        for loss_name in [
                'reconstruction', 'validation_accuracy', 'supervised'
        ]:
            plot.plot_loss_trace(hist_value[loss_name], loss_name,
                                 config.ckpt_dir)

        plot.plot_adversarial_trace(hist_value['discriminator_y'],
                                    hist_value['generator_y'], 'y',
                                    config.ckpt_dir)
        plot.plot_adversarial_trace(hist_value['discriminator_z'],
                                    hist_value['generator_z'], 'z',
                                    config.ckpt_dir)
示例#4
0
def main():
    # load MNIST images
    images, labels = dataset.load_test_images()

    # Settings
    num_scatter = len(images)
    _images, _, label_id = dataset.sample_labeled_data(images, labels,
                                                       num_scatter)

    with tf.device(config.device):
        t = build_graph(is_test=True)

    with tf.Session(config=tf.ConfigProto(allow_soft_placement=True,
                                          log_device_placement=True)) as sess:
        saver = tf.train.Saver()
        saver.restore(sess, tf.train.latest_checkpoint(config.ckpt_dir))
        representation, x_reconstruction = sess.run([t.yz, t.x_r],
                                                    feed_dict={t.x: _images})
        plot.scatter_labeled_z(representation, label_id, dir=config.ckpt_dir)
        plot.tile_images(x_reconstruction[:100], dir=config.ckpt_dir)

        # z distributed plot
        num_segments = 20
        limit = (-5, 5)
        x_values = np.linspace(limit[0], limit[1], num_segments)
        y_values = np.linspace(limit[0], limit[1], num_segments)
        vacant = np.zeros((28 * num_segments, 28 * num_segments))
        for i, x_element in enumerate(x_values):
            for j, y_element in enumerate(y_values):
                x_reconstruction = sess.run(
                    t.x_r,
                    feed_dict={
                        t.yz: np.reshape([x_element, y_element], [1, 2])
                    })
                vacant[(num_segments - 1 - i) * 28:(num_segments - i) * 28,
                       j * 28:(j + 1) * 28] = x_reconstruction.reshape(28, 28)

        vacant = (vacant + 1) / 2
        pylab.figure(figsize=(10, 10), dpi=400, facecolor='white')
        pylab.imshow(vacant, cmap='gray', origin='upper')
        pylab.tight_layout()
        pylab.axis('off')
        pylab.savefig("{}/clusters.png".format(config.ckpt_dir))

        # loss part
        hist_value, hist_head = plot.load_pickle_to_data(config.ckpt_dir)
        for loss_name in ['reconstruction', 'supervised']:
            plot.plot_loss_trace(hist_value[loss_name], loss_name,
                                 config.ckpt_dir)

        plot.plot_adversarial_trace(hist_value['discriminator_y'],
                                    hist_value['generator_y'], 'y',
                                    config.ckpt_dir)
        plot.plot_adversarial_trace(hist_value['discriminator_z'],
                                    hist_value['generator_z'], 'z',
                                    config.ckpt_dir)
        plot.plot_adversarial_trace(hist_value['validation_accuracy'],
                                    hist_value['transform'],
                                    'validation_accuracy', config.ckpt_dir)
示例#5
0
            location_num += 1

        y_onehot = sess.run(t.y_r, feed_dict={t.x: x_batch})
        y_labels = opt.argmax_label_from_distribution(y_onehot)
        for m in range(batch_size):
            cluster = int(y_labels[m])
            counter_cluster[cluster] += 1
            if counter_cluster[cluster] < num_plots_per_cluster:
                x = (x_batch[m] + 1.0) / 2
                pylab.subplot(
                    num_clusters, num_plots_per_cluster + 2,
                    cluster * (num_plots_per_cluster + 2) +
                    counter_cluster[cluster] + 2)
                pylab.imshow(x.reshape((image_width, image_height)),
                             interpolation='none')
                pylab.axis('off')

    fig = pylab.gcf()
    fig.set_size_inches(num_plots_per_cluster, config.ndim_y)
    pylab.savefig('{}/analogy.png'.format(config.ckpt_dir))
    print(counter_cluster)

hist_value, hist_head = plot.load_pickle_to_data(config.ckpt_dir)
for loss_name in ['reconstruction']:
    plot.plot_loss_trace(hist_value[loss_name], loss_name, config.ckpt_dir)

plot.plot_adversarial_trace(hist_value['discriminator_y'],
                            hist_value['generator_y'], 'y', config.ckpt_dir)
plot.plot_adversarial_trace(hist_value['discriminator_z'],
                            hist_value['generator_z'], 'z', config.ckpt_dir)