コード例 #1
0

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
コード例 #2
0
    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)
コード例 #3
0
ファイル: mnist_dem.py プロジェクト: hengyuan-hu/dem
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