我按照加载和保存文档中的说明保存了模型。
# saving trained model
f = file('models/simple_model.save', 'wb')
cPickle.dump(ca, f, protocol=cPickle.HIGHEST_PROTOCOL)
f.close()
ca
是一个经过训练的自编码器,它是类 cA
的实例。在我构建和保存模型的脚本中,我可以毫不费力地调用 ca.get_reconstructed_input(...)
和 ca.get_hidden_values(...)
。
在另一个脚本中,我尝试加载已训练好的模型。
# loading the trained model
model_file = file('models/simple_model.save', 'rb')
ca = cPickle.load(model_file)
model_file.close()
我遇到了以下错误。
ca = cPickle.load(model_file)
AttributeError: 'module' object has no attribute 'cA'
import cA
而不是from cA import cA
。我发布的代码在其他方面是正确的。你提供的替代方法也是正确的。我认为最干净的关闭此线程的方法是在你的第一段中添加一些内容(标识问题的真正来源),例如“确保你使用的是from cA import cA
而不仅仅是import cA
”,然后我可以将你的答案标记为已接受。谢谢! - xaggtheano.misc.pkl_utils.dump()
和theano.misc.pkl_utils.load()
进行序列化/反序列化。 - loretoparisi