《深度学习Python实践》第18章——持久化加载模型
序列化和反序列化机器学习的模型
需要将生成的机器学习模型序列化,并将其发布到生产环境。
当有新的数据出现时,需要反序列化已保存的模型,然后用其预测新的数据。
1. 通过pickle序列化和反序列化机器学习模型
pickle是标准的python序列化方法,可以通过它来序列化机器学习算法生成的模型,并将其保存到文件中。当需要对新数据进行预测时,将已保存的模型反序列化,并用其预测新的数据。
# -*- coding: utf-8 -*-
#import matplotlib.pyplot as pltfrom pandas import read_csv
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from pickle import dump
from pickle import loadfilename='pima indians.txt'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
data=read_csv(filename,names=names)
array= data.values
X= array[:,0:8]
Y= array[:,8]
test_size = 0.33
seed=4X_train,X_test, Y_train, Y_test = train_test_split(X,Y, test_size= test_size, random_state =seed)#训练模型
model = LogisticRegression()
model.fit(X_train,Y_train)
#保存模型
model_file='finalized_model.sav'
with open(model_file, 'wb') as model_f:#模型序列化dump(model, model_f)#加载模型
with open(model_file, 'rb') as model_f:#模型反序列化loaded_model= load(model_f)result=loaded_model.score(X_test, Y_test)print('算法评估结果:%.3f'%(result*100))
运行结果为:
算法评估结果:80.315
2.通过joblib序列化和反序列化机器学习的模型
joblib是SciPy生态环境的一部分,提供了通用的工具来序列化python的对象和反序列化python的对象。
通过joblib序列化对象时会采用Numpy的格式保存数据,这对某些保存数据到模型中的算法非常有效,如K近邻算法。
# -*- coding: utf-8 -*-
#import matplotlib.pyplot as pltfrom pandas import read_csv
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.externals.joblib import dump
from sklearn.externals.joblib import loadfilename='pima indians.txt'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
data=read_csv(filename,names=names)
array= data.values
X= array[:,0:8]
Y= array[:,8]
test_size = 0.33
seed=4X_train,X_test, Y_train, Y_test = train_test_split(X,Y, test_size= test_size, random_state =seed)#训练模型
model = LogisticRegression()
model.fit(X_train,Y_train)
#保存模型
model_file='finalized_model.sav'
with open(model_file, 'wb') as model_f:#模型序列化dump(model, model_f)#加载模型
with open(model_file, 'rb') as model_f:#模型反序列化loaded_model= load(model_f)result=loaded_model.score(X_test, Y_test)print('算法评估结果:%.3f'%(result*100))
运算结果为:
算法评估结果:80.315
《深度学习Python实践》第18章——持久化加载模型相关推荐
- Objective-C学习笔记第十五章文件加载与保存
第十五章文件加载与保存 Cocoa提供了Core Data,他能在后台处理所有文件内容 Cocoa提供了两个通用的文件处理类:属性列表和对象编码 一.属性列表类 在Cocoa中,有一类名为属性列表的对 ...
- 深度学习修炼(二)——数据集的加载
文章目录 致谢 2 数据集的加载 2.1 框架数据集的加载 2.2 自定义数据集 2.3 准备数据以进行数据加载器训练 致谢 Pytorch自带数据集介绍_godblesstao的博客-CSDN博客_ ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(四)(Python语言基础(2))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(四)(Python语言基础(2)) 第4讲 Python语言基础(2) 4.1 内置数据结构 4.1.1 序列数据结构(sequ ...
- 人工神经网络理论、设计及应用_TensorFlow深度学习应用实践:教你如何掌握深度学习模型及应用...
前言 通过TensorFlow图像处理,全面掌握深度学习模型及应用. 全面深入讲解反馈神经网络和卷积神经网络理论体系. 结合深度学习实际案例的实现,掌握TensorFlow程序设计方法和技巧. 着重深 ...
- 02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面(作业:初始化+正则化+梯度检验)
文章目录 作业1:初始化 1. 神经网络模型 2. 使用 0 初始化 3. 随机初始化 4. He 初始化 作业2:正则化 1. 无正则化模型 2. L2 正则化 3. DropOut 正则化 3.1 ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(八)(TensorFlow基础))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(八)(TensorFlow基础)) 8 TensorFlow基础 8.1 TensorFlow2.0特性 8.1.1 Tenso ...
- 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述
<繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...
- 深度学习笔记第二门课 改善深层神经网络 第一周:深度学习的实践层面
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 2.1)深度学习笔记:深度学习的实践层面
目录 1)Train/Dev/Test sets 2)Bias/Variance 3)Regularization(重点) 4)Why regularization reduces overfitti ...
- 深度学习最佳实践系列——权重w初始化
摘要: 本文是深度学习最佳实践系列博客之权重初始化,主要介绍权重初始化的相关问题及方法,文中提及的权重初始化方法均可以应用于普通的神经网络.卷积神经网络和递归神经网络之中. 作为深度学习的初学者,我有 ...
最新文章
- C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明
- python自带的库有哪些_python常用的内置库
- 使用ffmpeg裁剪和合并视频
- python字符编码导致dict中key不同
- ActiveMQ实现负载均衡+高可用部署方案
- Spring mvc中@RequestMapping 6个基本用法小结
- python库--Numpy and pandas
- hive-2.3.3安装指北
- springcloud整合sentinel
- [windows] win10下的SysMain服务
- [Python]利用python+ffmpeg合并B站视频及格式转换
- 记录一下wandb的用法
- CI/CD 流程以及原理
- XSS漏洞利用---PHPMyWind 任意密码重置漏洞
- 计算机网络水晶头博客,两台电脑组成局域网(交叉线)的水晶头制作详解
- VLC-3.0全部详细参数
- 用php调用接口api
- Android 9 P静默安装/卸载App适配终极指南
- 【Go】Go语言中的下划线
- linux 桌面 修复工具下载,Redis Desktop Manager 0.9.7发布下载,Redis桌面管理工具
热门文章
- matlab smooth函数_基于Matlab的机械臂路径规划
- Failed to start bean ‘documentationPluginsBootstrapper‘;
- redis数据类型-列表(List)
- axure 画小程序效果图_微信小程序-基于canvas画画涂鸦
- python settings_python settings如何配置sqlite?
- html mysql查询_mysql查询
- Javascript特效:表单选中、取消选中、反选
- 面向对象(Python):学习笔记之继承
- ORB-SLAM3 yaml文件介绍
- 从零开始搭二维激光SLAM --- 写作计划