2017-10-13 87 views
0

我已经完成了一个模型,它在可接受的范围内执行。我正在使用python和scitkit-learn。如何将火车模型转换为生产?

接下来将模型移至生产。

我可以请求帮助将这些模型转换为生产模式。我怎样才能保存一个训练有素的模型,以便我可以将其移至生产环境。

在此先感谢您的帮助。

+1

这是一个非常一般的问题。我想你应该在网上搜索一些教程。然而,作为初学者,您可能需要考虑使用Pickle保存您的模型,然后使用烧瓶作为API提供服务。 – Payman

回答

2

正如评论者所建议的那样,您应该使用pickle。特别是ML,你要找的是Model persistence。并通过scikit-learn:

训练完scikit-learn模型后,最好有一种方法可以保留模型以备将来使用,而不必重新培训。

他们的榜样:

>>> from sklearn import svm 
>>> from sklearn import datasets 
>>> clf = svm.SVC() 
>>> iris = datasets.load_iris() 
>>> X, y = iris.data, iris.target 
>>> clf.fit(X, y) 
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, 
    decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf', 
    max_iter=-1, probability=False, random_state=None, shrinking=True, 
    tol=0.001, verbose=False) 

>>> import pickle 
>>> s = pickle.dumps(clf) 
>>> clf2 = pickle.loads(s) 
>>> clf2.predict(X[0:1]) 
array([0]) 
>>> y[0] 
0 

在scikit的特定情况下,它可能是更有趣的使用JOBLIB的替代泡菜(joblib.dump & joblib.load),这是在对象上更有效在内部携带大的numpy阵列,这通常适用于scikit-learn估计器,但只能腌制到磁盘而不是字符串:

>>> from sklearn.externals import joblib 
>>> joblib.dump(clf, 'filename.pkl')