我想保存一个我训练过的模型。 由于它使用共享变量(如Weights,bias等),并且因为它应该在没有安装Theano的机器上可读,所以我想使用theano.misc.pkl_utils.dump()函数。 但是,似乎只安装在前沿安装中(当前的github文件看起来与我的本地文件不同)。
情况确实如此吗?为什么docs中的描述呢?
我正在使用theano 0.7.0,我对此非常困惑。 如果该功能尚不可用(我现在无法安装前沿),还有其他方法吗?我确信我并不是唯一一个试图以最简单的方式保存训练模型的人; - )
非常感谢,
罗马
答案 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]
其中params
是shared
个变量的列表。然后你可以安全地 pickle / unpickle params_numpy
。