Пример #1
0
import numpy as np
import input_quickdraw
import matplotlib.pyplot as plt

from vae import VAE
from scipy.stats import kde

single = input_quickdraw.Single(['diamond'], 5000)
X = single.train_data
Y = single.train_label

vae = VAE(784, [500], 2)
vae.train(X,
          batch_size=200,
          num_epochs=100,
          rerun=False,
          model_filename='diamond_only')

print('Encoding...')

latent_z = tuple()
for i in range(3):
    latent_z = latent_z + (vae.encode(X), )
latent_z = np.concatenate(latent_z)

print('Binning...')

nbins = 100
x, y = latent_z.T
k = kde.gaussian_kde(latent_z.T)
xi, yi = np.mgrid[x.min():x.max():nbins * 1j, y.min():y.max():nbins * 1j]
Пример #2
0
import numpy as np
import input_quickdraw
import matplotlib.pyplot as plt

from vae import VAE
from scipy.stats import kde

single = input_quickdraw.Single(['alarm_clock'], 5000)
X = single.train_data
Y = single.train_label

vae = VAE(784, [500], 10)
vae.train(X, batch_size=200, num_epochs=100, rerun=False, model_filename='alarm_clock_schematic')

print('Encoding...')

X = X[:1, :]
plt.imshow(X[0].reshape(28,28), cmap='Greys')
plt.tick_params(axis='both', which='both', bottom='off', top='off', labelbottom='off', right='off', left='off', labelleft='off')
plt.show()

latent_z = vae.encode(X)
x_reconstructed = vae.decode(latent_z)
plt.imshow(x_reconstructed[0].reshape(28,28), cmap='Greys')
plt.tick_params(axis='both', which='both', bottom='off', top='off', labelbottom='off', right='off', left='off', labelleft='off')
plt.show()
Пример #3
0
import sys
import numpy as np
import input_quickdraw
import matplotlib.pyplot as plt

from vae import VAE
from scipy.stats import kde
from sklearn.manifold import TSNE

single = input_quickdraw.Single([
    'alarm_clock', 'aircraft_carrier', 'airplane', 'banana', 'broom', 'barn',
    'diamond', 'fish', 'lollipop'
], 5000)
X = single.train_data
Y = single.train_label
print single.color_scheme

latent_dim = int(sys.argv[1])
vae = VAE(784, [500], latent_dim)
vae.train(X,
          batch_size=1000,
          num_epochs=100,
          rerun=False,
          model_filename='nine_objects_l_%d' % latent_dim)

if latent_dim == 2:
    latent_z = vae.encode(X)
    latent_y = [single.color_scheme[y] for y in Y]

    plt.clf()
    plt.scatter(latent_z[:, 0],
Пример #4
0
import sys
import numpy as np
import input_quickdraw
import matplotlib.pyplot as plt

from vae import VAE
from scipy.stats import kde
from sklearn.manifold import TSNE

single = input_quickdraw.Single(['barn'], 5000)
X = single.train_data
Y = single.train_label

latent_dim = int(sys.argv[1])
vae = VAE(784, [500], latent_dim)
vae.train(X,
          batch_size=200,
          num_epochs=100,
          rerun=False,
          model_filename='barn_l_%d' % latent_dim)

latent_z = vae.encode(X)

x_reconstructed = vae.decode(latent_z)
for n, i in enumerate(
        np.random.randint(low=0, high=x_reconstructed.shape[0], size=20)):
    print i
    plt.clf()
    plt.imshow(x_reconstructed[i].reshape(28, 28), cmap='Greys')
    plt.tick_params(axis='both',
                    which='both',
Пример #5
0
import argparse
import input_quickdraw

from vae import VAE

parser = argparse.ArgumentParser()

parser.add_argument('--input_dim', type=int, action='store', dest='input_dim')
parser.add_argument('--latent_dim', type=int, action='store', dest='latent_dim')
parser.add_argument('--hidden_dim', type=int, nargs='+', action='store', dest='hidden_dim')
parser.add_argument('--encoder_fn', default='sigmoid', action='store', dest='encoder_fn')
parser.add_argument('--decoder_fn', default='relu', action='store', dest='decoder_fn')
parser.add_argument('--squashing_fn', default='sigmoid', action='store', dest='squashing_fn')

parameters = parser.parse_args()

single = input_quickdraw.Single(['alarm_clock', 'broom', 'banana', 'lion', 'lollipop'], 5000)
X = single.train_data
Y = single.train_label

vae = VAE(parameters.input_dim, parameters.hidden_dim, parameters.latent_dim, encoder_fn=parameters.encoder_fn, decoder_fn=parameters.decoder_fn)
vae.train(X, batch_size=500, num_epochs=100, rerun=True)