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])
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)
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):
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):
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)
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)