我们可以使用下面的 YAML 文件(以及 pylearn2/scripts/train.py)在 pylearn2 中训练自动编码器
!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”函数预测模型的输出。
但是,如果我不想使用这个预训练模型进行监督学习,我只想用自动编码器保存我的数据的新学习表示。
我怎样才能做到这一点?
更详细的问题放在这里