对于机器学习的一些模型,跑完之后,如果下一次测试又需要重新跑一遍模型是一件很繁琐的事,这时候我们就需要保存模型,再加载调用。

楼主发现有这些保存模型的方法,网上有很多错误的例子,所以给大家在整理一下。(python3)

1.利用pickle

import pickle
model.fit(train_X, train_y)
s=pickle.dumps(model)
f=open('svm.model', "wb+")
f.write(s)
f.close()
print ("Done\n")
模型保存
这里的model已经是生成好的模型了,注意一定要用"wb+",否则会报错
f2=open('svm.model','rb')
s2=f2.read()
model1=pickle.loads(s2)
expected = test_y
predicted = model1.predict(test_X)
模型调用,注意读取方式'rb',否则会报错

2.利用joblib

from sklearn.externals import joblib
model.fit(train_X, train_y)
joblib.dump(model, "train1_model.m")
print ("Done\n")
模型读取
model1 = joblib.load("train1_model.m")
expected = test_y
predicted = model1.predict(test_X)
模型调用

相对于上一方法,这个方法写起来简单明了多了。

好像还有cv方法的,楼主没有尝试。

这里的调用仅限在同一个py文件中,如果在另外一个py文件中调用,预测结果会出错,具体原因楼主也不清楚,楼主也一直在找一个在另外一个py文件中调用模型的方法,如果大家知道的话,也希望能告诉楼主,感谢!

考虑到如果预测数据又需要跑一遍模型,楼主的建议是,把保存模型的过程写进函数里面,下次不再调用该函数即可。

python sklearn svm模型的保存与加载调用相关推荐

  1. python sklearn: 模型(如 SVM,PCA等)的保存与加载调用

    sklearn 的官方文档提供了两种模型的保存与加载方法:用pickle和joblib. 官方文档建议,在scikit-learn的特定情况下,最好使用joblib代替pickle. 两种模型的保存与 ...

  2. TensorFlow2.0:模型的保存与加载

    ** 一.权重参数的保存与加载 ** network.save_weights('weights.ckpt') network.load_weights('weights.ckpt') 权重参数的保存 ...

  3. [TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式)

    [TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式) 个人网站–> http://www.yansongsong.cn TensorFl ...

  4. pytorch保存模型pth_Day159:模型的保存与加载

    网络结构和参数可以分开的保存和加载,因此,pytorch保存模型有两种方法: 保存 整个模型 (结构+参数) 只保存模型参数(官方推荐) # 保存整个网络torch.save(model, check ...

  5. Pytorch:模型的保存与加载 torch.save()、torch.load()、torch.nn.Module.load_state_dict()

    Pytorch 保存和加载模型后缀:.pt 和.pth 1 torch.save() [source] 保存一个序列化(serialized)的目标到磁盘.函数使用了Python的pickle程序用于 ...

  6. pytorch模型的保存与加载

    我们先创建一个模型,使用的是pytorch笔记--简易回归问题_刘文巾的博客-CSDN博客 的主体框架,唯一不同的是,我这里用的是torch.nn.Sequential来定义模型框架,而不是那篇博客里 ...

  7. torch.save()模型的保存于加载

    保存模型主要分为两类:保存整个模型和只保存模型参数 1.保存加载整个模型(不推荐): 保存整个网络模型,网络结构+权重参数 torch.save(model,'net.pth') 加载整个网络模型(可 ...

  8. python sklearn svm 模型训练后的参数说明

    在调用sklearn的SVM时,如果设置verbose=True,模型训练结束后会显示一些训练过程的说明信息,如下(以下是OCSVM的返回结果): * optimization finished, # ...

  9. MXNET学习笔记(二):模型的保存与加载

    当序列化 NDArray 的时候,我们序列化的是NDArray 中保存的 tensor 值.当序列化 Symbol 的时候,我们序列化的是 Graph. Symbol序列化 当序列化 Symbol 的 ...

最新文章

  1. 第三篇 (.net socket 与 android )
  2. .Net转Java.02.数据类型
  3. Flex 中取得当前服务IP地址
  4. 【数据展示】matplotlib设置画面大小
  5. 【 CodeForces - 1060B 】Maximum Sum of Digits(思维,构造)
  6. 【LeetCode笔记】78. 子集(Java、dfs)
  7. js设计模式之Constructor(构造器)
  8. 当Ext.js中xtype: 'checkboxfield'时,没勾选则向后台发送的数据没有字段的解决方法...
  9. 俄罗斯方块C++代码(转载他人代码)
  10. Java(但行好事 莫问前程) 1
  11. 如何分辨HDD/SSD硬盘接口?
  12. 电脑有网,microsoft edge浏览器无法上网
  13. vue对象属性为null_vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题...
  14. 数据库同步利器 otter 双A同步配置
  15. Linux磁盘分区并永久挂载
  16. ORACLE+SQL性能优化
  17. (亲测有效)荣耀手机一键激活Xposed框架方法
  18. windows九大权限的分析与利用
  19. 张蕾:北斗链将重新回到技术研发的道路上
  20. Star-Transformer

热门文章

  1. 如何在计算机增加桌面选项,如何增加计算机屏幕分辨率?
  2. 人们为什么要在微博、Facebook 等上发布自己的状态信息或者人生感悟?
  3. python传奇自动打怪脚本_传奇自动刷怪脚本,节省服务器资源
  4. C++STL之vector
  5. 天冷危险,疫情暴增7.5倍,还有暴雪、碎冰伤人!
  6. NVIDIA Jetson TX2
  7. [zt] 静态局部变量
  8. 使用python实现3D点云算法模型
  9. css3 分栏 滑页翻页,基于CSS3 column多栏布局实现水平滑页翻页交互
  10. 球球大作战测试服android版,球球大作战测试服