Theano的pkl_utils转储功能在Theano 0.7中不可用?

时间:2016-01-19 15:33:03

标签: python pickle theano

我想保存一个我训练过的模型。 由于它使用共享变量(如Weights,bias等),并且因为它应该在没有安装Theano的机器上可读,所以我想使用theano.misc.pkl_utils.dump()函数。 但是,似乎只安装在前沿安装中(当前的github文件看起来与我的本地文件不同)。

情况确实如此吗?为什么docs中的描述呢?

我正在使用theano 0.7.0,我对此非常困惑。 如果该功能尚不可用(我现在无法安装前沿),还有其他方法吗?我确信我并不是唯一一个试图以最简单的方式保存训练模型的人; - )

非常感谢,

罗马

1 个答案:

答案 0 :(得分:2)

如果使用Theano训练模型,模型的参数最终将是shared变量(如果网络由多个层组成,则可能是shared变量的列表)。以后可以 pickle shared变量列表和 unpickle 。但是,您可能在另一台计算机中 unpickle 这些变量时遇到问题,例如:没有Theano安装,或者如果你在支持GPU的机器中训练生成 CudaNdarrays ,然后你想在不支持GPU的机器上加载模型。我推荐你的是:将参数列表中的每个共享变量转换为numpy ndarray

params_numpy = [numpy.asarray(p.get_value()) for p in params]

其中paramsshared个变量的列表。然后你可以安全地 pickle / unpickle params_numpy