如何使用Pylearn2通过经过训练的自动编码器转换新数据



我通过Pylearn2训练并保存了两层堆叠的CAE模型。我想加载这些模型并转换一个新颖的数据集。我该怎么做?

这是我的型号:

l1 = serial.load('CAE_l1.pkl')
l2 = serial.load('CAE_l2.pkl')
print l1
<pylearn2.models.autoencoder.ContractiveAutoencoder object at 0x7f3bb6d482d0>

我也试过这样的东西,但不起作用。

data = T.matrix('data')
transform = theano.function([data], l1(data))

这是我最近做的,但不确定它的正确性:

data = T.matrix('data')
transform = theano.function([data], l1.encode(data))
X_1 = transform(X.astype(float32))

检查pylearn2.scripts.autoencoder目录中的配置文件,该文件显示如何使用堆叠的、预训练的自动编码器。在数据集进入模型的下一阶段的过程中,您将预训练的模型作为transformer对象加载到数据集上。

如果你不想使用yaml文件,你应该能够使用正确的方法将模型函数串在一起(未经测试,因为我正在写下我的想法):

输入=T.vector()

enc=l1。编码(输入)

输出=l2.编码(enc)

f=无功能([输入],输出)

real_transformation=f(real_data)

要返回,可以使用ae_layer.decode()方法执行同样的操作。

如果这些是和MLP的层的一部分,则可以在MLP上调用.fprop()方法来向上遍历所有层。

相关内容

  • 没有找到相关文章

最新更新