Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何通过使用PYLERN2的经过训练的自动编码器转换新数据?_Python_Theano_Pylearn - Fatal编程技术网

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

Python 我如何通过使用PYLERN2的经过训练的自动编码器转换新数据?,python,theano,pylearn,Python,Theano,Pylearn,我使用PYLERN2训练并保存了两层堆叠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('

我使用PYLERN2训练并保存了两层堆叠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.encode(data))
X_1 = transform(X.astype(float32))

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

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

输入=T.向量()

enc=l1.编码(输入)

输出=l2.编码(enc)

f=编号函数([输入],输出)

实数变换=f(实数数据)

要返回,您可以使用
ae\u layer.decode()
方法执行相同的操作


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

您的解决方案是正确的。此外,如果要批处理多个输入数据,可以用T.matrix()替换T.vector()。
data = T.matrix('data')
transform = theano.function([data], l1.encode(data))
X_1 = transform(X.astype(float32))