0

我通过 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))
4

1 回答 1

2

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

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

输入 = T.vector()

enc = l1.encode(输入)

输出 = l2.encode(enc)

f = theano.function([输入],输出)

real_transformation = f(real_data)

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

如果这些是 and 层的一部分MLP,您可以调用 上的.fprop()方法MLP来向上通过所有层。

于 2014-11-15T19:10:43.200 回答