我正在使用基于scikit-learn的nolearn的DBN(深度信任网络)。
我已经建立了一个可以很好地对数据进行分类的网络,现在我有兴趣导出模型以进行部署,但是我不知道该怎么做(我每次想预测某些东西时都在训练DBN)。在这里,matlab
我只是导出权重矩阵,然后将其导入另一台机器。
有人知道如何导出模型/要导入的权重矩阵而无需再次训练整个模型吗?
首先,安装joblib。
您可以使用:
>>> import joblib
>>> joblib.dump(clf, 'my_model.pkl', compress=9)
然后,在预测服务器上:
>>> import joblib
>>> model_clone = joblib.load('my_model.pkl')
这基本上是一个Python泡菜,具有针对大型numpy数组的优化处理。它与常规的pickle wrt代码更改具有相同的局限性:如果pickle对象的类结构发生了更改,则您可能不再能够使用nolearn或scikit-learn的新版本来解开对象。
如果您想长期稳定地存储模型参数,则可能需要编写自己的IO层(例如,使用二进制格式的序列化工具(例如协议缓冲区或avro)或效率低下但可移植的text / json / xml表示形式(例如PMML)) 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句