Exemplo n.º 1
0
model = chainer.FunctionSet(
    fh1=F.Linear(28 ** 2, 100),
    fh3=F.Linear(100, 28 ** 2),
)


def forward(self, x, train):
    if train:
        x = F.dropout(x, ratio=0.4)

    h = F.dropout(F.sigmoid(self.model.fh1(x)), train=train)
    h = F.dropout(self.model.fh3(h), train=train)

    return h

ae = AutoEncoder(model, gpu=-1)
ae.set_forward(forward)
ae.set_optimizer(Opt.Adam)

mnist = fetch_mldata('MNIST original', data_home='.')
perm = numpy.random.permutation(len(mnist.data))
mnist.data = mnist.data.astype(numpy.float32) / 255
train_data = mnist.data[perm][:60000]
test_data = mnist.data[perm][60000:]

for epoch in range(10):
    print('epoch : %d' % (epoch + 1))
    err = ae.train(train_data, batchsize=200)
    print(err)
    perm = numpy.random.permutation(len(test_data))
    terr = ae.test(test_data[perm][:100])
Exemplo n.º 2
0
model = chainer.FunctionSet(enc_conv=F.Convolution2D(1, 64, 5, pad=2),
                            dec_conv=F.Convolution2D(64, 1, 5, pad=2))


def forward(self, x, train):
    if train:
        x = F.dropout(x, ratio=0.4)

    h = F.sigmoid(self.model.enc_conv(x))
    h = self.model.dec_conv(h)

    return h


ae = AutoEncoder(model, gpu=-1)
ae.set_forward(forward)
ae.load_param('./cae.param.npy')

imager = V.Visualizer(ae)
imager.plot_filters('enc_conv')
imager.plot_filters('dec_conv')
mnist = fetch_mldata('MNIST original', data_home='.')
mnist.data = mnist.data.astype(numpy.float32) / 255


def output(self, x, layer):
    h = self.model.enc_conv(x)
    if layer == 1:
        return h
    h = F.sigmoid(h)
model = chainer.FunctionSet(
    enc_conv=F.Convolution2D(1, 64, 5, pad=2),
    dec_conv=F.Convolution2D(64, 1, 5, pad=2)
)


def forward(self, x, train):
    if train:
        x = F.dropout(x, ratio=0.4)

    h = F.sigmoid(self.model.enc_conv(x))
    h = self.model.dec_conv(h)

    return h

ae = AutoEncoder(model, gpu=-1)
ae.set_forward(forward)
ae.load_param('./cae.param.npy')

imager = V.Visualizer(ae)
imager.plot_filters('enc_conv')
imager.plot_filters('dec_conv')
mnist = fetch_mldata('MNIST original', data_home='.')
mnist.data = mnist.data.astype(numpy.float32) / 255


def output(self, x, layer):
    h = self.model.enc_conv(x)
    if layer == 1:
        return h
    h = F.sigmoid(h)
Exemplo n.º 4
0
    fh1=F.Linear(28**2, 100),
    fh2=F.Linear(100, 28**2),
)


def forward(self, x, train):
    if train:
        F.dropout(x, ratio=0.3)

    h = F.dropout(F.sigmoid(self.model.fh1(x)), train=train)
    h = F.dropout(self.model.fh2(h), train=train)

    return h


ae = AutoEncoder(model, gpu=-1)
ae.set_forward(forward)
ae.load_param('./ae.param.npy')

imager = V.Visualizer(ae)
imager.plot_filters('fh1', shape=(28, 28))
imager.plot_filters('fh2', shape=(28, 28), T=True)

mnist = fetch_mldata('MNIST original', data_home='.')
perm = numpy.random.permutation(len(mnist.data))
train_data = mnist.data[perm][:60000].astype(numpy.float32) / 255
test_data = mnist.data[perm][60000:].astype(numpy.float32) / 255
for i in range(20):
    y = ae.forward(train_data[i * 20:i * 20 + 25], train=False)
    y = chainer.cuda.to_cpu(y.data)
    for n in range(25):
Exemplo n.º 5
0
model = chainer.FunctionSet(
    fh1=F.Linear(28 ** 2, 100),
    fh2=F.Linear(100, 28 ** 2),
)


def forward(self, x, train):
    if train:
        F.dropout(x, ratio=0.3)

    h = F.dropout(F.sigmoid(self.model.fh1(x)), train=train)
    h = F.dropout(self.model.fh2(h), train=train)

    return h

ae = AutoEncoder(model, gpu=-1)
ae.set_forward(forward)
ae.load_param('./ae.param.npy')

imager = V.Visualizer(ae)
imager.plot_filters('fh1', shape=(28, 28))
imager.plot_filters('fh2', shape=(28, 28), T=True)

mnist = fetch_mldata('MNIST original', data_home='.')
perm = numpy.random.permutation(len(mnist.data))
train_data = mnist.data[perm][:60000].astype(numpy.float32) / 255
test_data = mnist.data[perm][60000:].astype(numpy.float32) / 255
for i in range(20):
    y = ae.forward(train_data[i * 20: i * 20 + 25], train=False)
    y = chainer.cuda.to_cpu(y.data)
    for n in range(25):
Exemplo n.º 6
0
model = chainer.FunctionSet(enc_conv=F.Convolution2D(1, 64, 5, pad=2),
                            dec_conv=F.Convolution2D(64, 1, 5, pad=2))


def forward(self, x, train):
    if train:
        x = F.dropout(x, ratio=0.4, train=train)

    h = F.sigmoid(self.model.enc_conv(x))
    h = self.model.dec_conv(h)

    return h


ae = AutoEncoder(model, gpu=-1)
ae.set_forward(forward)

mnist = fetch_mldata('MNIST original', data_home='.')
perm = numpy.random.permutation(len(mnist.data))
mnist.data = mnist.data.astype(numpy.float32) / 255
train_data = mnist.data[perm][:60000].reshape(60000, 1, 28, 28)
test_data = mnist.data[perm][60000:].reshape(10000, 1, 28, 28)

for epoch in range(40):
    print('epoch : %d' % epoch)
    err = ae.train(train_data, batchsize=200)
    print(err)
    perm = numpy.random.permutation(len(test_data))
    terr = ae.test(test_data[perm][:100])
    print(err)
Exemplo n.º 7
0
model = chainer.FunctionSet(
    enc_conv=F.Convolution2D(1, 64, 5, pad=2),
    dec_conv=F.Convolution2D(64, 1, 5, pad=2)
)


def forward(self, x, train):
    if train:
        x = F.dropout(x, ratio=0.4, train=train)

    h = F.sigmoid(self.model.enc_conv(x))
    h = self.model.dec_conv(h)

    return h

ae = AutoEncoder(model, gpu=-1)
ae.set_forward(forward)

mnist = fetch_mldata('MNIST original', data_home='.')
perm = numpy.random.permutation(len(mnist.data))
mnist.data = mnist.data.astype(numpy.float32) / 255
train_data = mnist.data[perm][:60000].reshape(60000, 1, 28, 28)
test_data = mnist.data[perm][60000:].reshape(10000, 1, 28, 28)

for epoch in range(40):
    print('epoch : %d' % epoch)
    err = ae.train(train_data, batchsize=200)
    print(err)
    perm = numpy.random.permutation(len(test_data))
    terr = ae.test(test_data[perm][:100])
    print(err)