获取的数据了解到表示从pylearn2无监督学习(Getting the learned repre

2019-10-21 00:24发布

我们可以使用下面YAML文件中pylearn2训练自动编码器(连同pylearn2 /脚本/ train.py)

!obj:pylearn2.train.Train {
    dataset: &train !obj:pylearn2.datasets.mnist.MNIST {
        which_set: 'train',
        start: 0,
        stop: 50000
    },
    model: !obj:pylearn2.models.autoencoder.DenoisingAutoencoder {
        nvis : 784,
        nhid : 500,
        irange : 0.05,
        corruptor: !obj:pylearn2.corruption.BinomialCorruptor {
            corruption_level: .2,
        },
        act_enc: "tanh",
        act_dec: null,    # Linear activation on the decoder side.
    },
    algorithm: !obj:pylearn2.training_algorithms.sgd.SGD {
        learning_rate : 1e-3,
        batch_size : 100,
        monitoring_batches : 5,
        monitoring_dataset : *train,
        cost : !obj:pylearn2.costs.autoencoder.MeanSquaredReconstructionError {},
        termination_criterion : !obj:pylearn2.termination_criteria.EpochCounter {
            max_epochs: 10,
        },
    },
    save_path: "./dae_l1.pkl",
    save_freq: 1
}

我们得到的是学会了自动编码器模式为“dae_l1.pkl”。

如果我想使用这个模型指导训练,我可以用“dae_l1.pkl”初始化一个MLP的层。 然后,我可以训练这种模式。 我甚至可以用“fprop”功能预测模型的输出。

但是,如果我想逼债要使用哪个监督学习这个预训练模式,我只是想救我的数据的新的知悉表示与自动编码。

我怎样才能做到这一点?

更详细的问题放在这里

Answer 1:

The reconstruct method of the pickled model should do it - I believe usage is the same as fprop.



Answer 2:

我想你可以使用自动编码器的编码和解码功能,以获得隐藏的表示。 例如:

l1_path = 'dae_l1.pkl'
l1 = serial.load(l1_path)
"""encode"""
#layer 1
l1Input = l1.get_input_space().make_theano_batch()
l1Encode = l1.encode(l1Input)
l1Decode = l1.decode(l1Encode)
l1EncodeFunction = theano.function([l1Input], l1Encode)
l1DecodeFunction = theano.function([l1Encode], l1Decode)

然后,表示为:

l1encode = l1EncodeFunction(YourData)


文章来源: Getting the learned representation of the data from the unsupervised learning in pylearn2