python训练好的模型保存与加载

python训练好的模型保存与加载

当我们训练好一个模型model后,如果在其他程序中或者下次想继续使用这个model,我们就需要把这个model保存下来,下次使用时直接导入就好了,不需要重新训练。

  • 方式一:
    采用joblib模块来保存model,首先安装joblib:
pip install joblib

核心两行代码如下

# 保存 model
joblib.dump(regr, '../../model/regr.pkl')

# 加载 model
clf = joblib.load('../../model/regr.pkl')
完整示例代码如下:
#!/usr/bin/env python
# encoding: utf-8
'''
@Author  : pentiumCM
@Email   : *********@qq.com
@Software: PyCharm
@File    : linear_regression.py
@Time    : 2019/12/19 0:19
@desc	 : 线性回归示例
'''

from matplotlib import pyplot as plot
import numpy as np
from sklearn import linear_model
import joblib as jl

# 构建训练数据
X = np.array([48, 57, 50, 54, 64, 61, 43, 59])              # 体重
Y = np.array([165, 165, 157, 170, 175, 165, 155, 170])      # 身高

# 调整训练数据的维度
X_train = np.reshape(X, (-1, 1))
Y_train = np.reshape(Y, (-1, 1))

# 建立线性模型
regr = linear_model.LinearRegression()
regr.fit(X_train, Y_train)

# 保存 model
jl.dump(regr, '../../model/regr.pkl')

print("模型保存成功")

# 加载 model
clf = jl.load('../../model/regr.pkl')
Y_pred = clf.predict(X_train)

# 可视化
# 1.训练集数据
plot.scatter(X_train, Y_train, color='green')
# 2.线性预测数据
plot.plot(X_train, Y_pred, color='red')
plot.show()
pkl文件:

生成的model文件是pkl文件,pkl是python的一种存储文件,需要安装python打开,读取pkl文件需要import pickle包。
所以下面介绍直接使用python自带的pickle来保存训练好的model

  • 方式二:
    使用python自带的pickle,来保存和加载模型,核心代码如下
# 保存 model
f = open('../../model/regr2.pkl', 'wb')
pickle.dump(regr, f)
f.close()

# 加载 model
f = open('../../model/regr2.pkl', 'rb')
clf = pickle.load(f)
f.close()
完整示例代码如下:
#!/usr/bin/env python
# encoding: utf-8
'''
@Author  : pentiumCM
@Email   : *********@qq.com
@Software: PyCharm
@File    : linear_regression.py
@Time    : 2019/12/19 0:19
@desc	 : 线性回归示例
'''

from matplotlib import pyplot as plot
import numpy as np
from sklearn import linear_model
import pickle

# 构建训练数据
X = np.array([48, 57, 50, 54, 64, 61, 43, 59])              # 体重
Y = np.array([165, 165, 157, 170, 175, 165, 155, 170])      # 身高

# 调整训练数据的维度
X_train = np.reshape(X, (-1, 1))
Y_train = np.reshape(Y, (-1, 1))

# 建立线性模型
regr = linear_model.LinearRegression()
regr.fit(X_train, Y_train)

# 保存 model
f = open('../../model/regr2.pkl', 'wb')
pickle.dump(regr, f)
f.close()

print("模型保存成功")

# 加载 model
f = open('../../model/regr2.pkl', 'rb')
clf = pickle.load(f)
f.close()

Y_pred = clf.predict(X_train)

# 可视化
# 1.训练集数据
plot.scatter(X_train, Y_train, color='green')
# 2.测试数据
plot.plot(X_train, Y_pred, color='red')
plot.show()



发布了24 篇原创文章 · 获赞 7 · 访问量 1676

猜你喜欢

转载自blog.csdn.net/pentiumCM/article/details/104370401