if __name__ == '__main__': import keras.backend as K from autoencoder import AutoEncoder from dataset_wrapper import MnistWrapper import utils K.set_session(utils.create_session()) mnist_dataset = MnistWrapper.load_default() # ----------normal relu pretraining---------- print 'Training model with normal relu' folder = 'test/mnist_ae_relu_inf' ae = AutoEncoder(mnist_dataset, encode, decode, None, folder) ae.build_models() num_epoch = 30 lr_schedule = utils.generate_decay_lr_schedule(num_epoch, 0.1, 1) ae.train(128, num_epoch, lr_schedule) ae.save_models() ae.test_models(utils.vis_mnist) ae.log() encoded_dataset = ae.encode(MnistWrapper) encoded_dataset.dump_to_h5(os.path.join(folder, 'encoded_mnist.h5')) encoded_dataset.plot_data_dist(os.path.join(folder, 'encoded_plot.png')) # ----------truncate relu and fine-tune---------- print 'Training model with relu-%d' % RELU_MAX new_folder = 'test/mnist_ae_relu_%d' % RELU_MAX
trainer = RBMPretrainer(sess, dataset, rbm, decoder, vis_fn, output_dir) trainer.train(train_config, sampler, sampler_generator) trainer.dump_log(output_dir) return output_dir if __name__ == '__main__': np.random.seed(66699) sess = utils.create_session() K.set_session(sess) ae_folder = 'prod/cifar10_ae2_relu_%d' % cifar10_ae.RELU_MAX ae = AutoEncoder(Cifar10Wrapper.load_default(), cifar10_ae.encode, cifar10_ae.decode, cifar10_ae.RELU_MAX, ae_folder) ae.build_models(ae_folder) # load model encoded_dataset = Cifar10Wrapper.load_from_h5( os.path.join(ae_folder, 'encoded_cifar10.h5')) assert len(encoded_dataset.x_shape) == 1 num_hid = 2000 output_folder = os.path.join(ae_folder, 'test_pretrain') # weights_file = os.path.join( # output_folder, 'ptrbm_hid2000_lr0.1_cd1', 'epoch_100_rbm.h5') weights_file = '/home/hhu/Developer/dem/prod/cifar10_ae2_relu_6/ptrbm_scheme0/ptrbm_hid2000_lr0.1_cd1/epoch_100_rbm.h5' rbm = RBM(None, None, weights_file) # rbm = RBM(encoded_dataset.x_shape[0], num_hid, None) # train_config = utils.TrainConfig( # lr=0.1, batch_size=100, num_epoch=100, use_pcd=False, cd_k=1)
if __name__ == '__main__': import keras.backend as K import numpy as np from autoencoder import AutoEncoder from dataset_wrapper import MnistWrapper import mnist_ae import dem_trainer import hmc import utils sess = utils.create_session() K.set_session(sess) dataset = MnistWrapper.load_default() ae = AutoEncoder(dataset, mnist_ae.encode, mnist_ae.decode, mnist_ae.RELU_MAX, 'test/mnist_dem/ae') ae.build_models('test/mnist_dem/ae') # load weights l1_weights = ae.encoder.layers[1].get_weights() print 'l1 weights sum: %s, bias sum: %s' % ( l1_weights[0].sum(), l1_weights[1].sum()) train_autoencoder = False if train_autoencoder: num_epoch = 10 lr_schedule = utils.generate_decay_lr_schedule(num_epoch, 0.1, 1) ae.train(128, num_epoch, lr_schedule) ae.save_models() ae.test_models(utils.vis_mnist) ae.log() num_hid = 100