python保存模型的路径怎么写_使用python在MongoDB中保存机器学习(ML)和深度学习(DL)模型...
我们知道,当我们训练机器学习或深入学习模型时,我们必须保存训练过的模型,以便将来进行预测。现在的训练模型非常昂贵,所以如果我们能够保存它们并将其用于解决其他一些问题。例如,一个训练过的能够识别汽车的神经网络,可以用迁移学习方法对其进行微调后用于识别卡车。
在数据库中保存模型并使用python加载它们是很容易的。我们选择MongoDB是因为它是一个开源的文档数据库和领先的NoSQL数据库。现在让我们使用python逐步实现这个过程。
首先,使用pip安装pymongo,如下所示,
pip install pymongo
如果要使用MongoDB,请确保在系统中安装了MongoDB。
我们将首先在iris数据集上训练xgboost模型,然后将其转储到数据库中并将其加载回来并用于预测。导入Python库,如下所示:
#importing important librariesimport pymongoimport pandas as pdimport numpy as npfrom sklearn import datasetsimport pickleimport timeimport pymongo
现在我们将在iris数据集上训练xgboost
iris = datasets.load_iris()X = iris.datay = iris.targetfrom sklearn.cross_validation import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)from xgboost import XGBClassifierxgb = XGBClassifier()xgb.fit(X_train, y_train)
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
colsample_bytree=1, gamma=0, learning_rate=0.1, max_delta_step=0,
max_depth=3, min_child_weight=1, missing=None, n_estimators=100,
n_jobs=1, nthread=None, objective='multi:softprob', random_state=0,
reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,
silent=True, subsample=1)
训练结束后,我们将编写一个辅助函数来保存机器学习模型,该机器学习模型将首先对模型进行pickle。Pickling只是将任何对象转换为字节。我们必须pickle我们的模型,因为我们不能直接将对象保存到MongoDB中。此函数还创建连接、数据库和collection,然后使用名称保存模型。
def save_model_to_db(model, client, db, dbconnection, model_name): import pickle import time import pymongo #pickling the model pickled_model = pickle.dumps(model) #saving model to mongoDB # creating connection myclient = pymongo.MongoClient(client) #creating database in mongodb mydb = myclient[db] #creating collection mycon = mydb[dbconnection] info = mycon.insert_one({model_name: pickled_model, 'name': model_name, 'created_time':time.time()}) print(info.inserted_id, ' saved with this id successfully!') details = { 'inserted_id':info.inserted_id, 'model_name':model_name, 'created_time':time.time() } return details
现在我们将编写另一个辅助函数来加载保存的机器学习模型。这个函数首unpickles保存的模型,然后返回模型。在这里,我们使用find()函数并传递它的模型名来从数据库中获取模型。
def load_saved_model_from_db(model_name, client, db, dbconnection): json_data = {} #saving model to mongoDB # creating connection myclient = pymongo.MongoClient(client) #creating database in mongodb mydb = myclient[db] #creating collection mycon = mydb[dbconnection] data = mycon.find({'name': model_name}) for i in data: json_data = i #fetching model from db pickled_model = json_data[model_name] return pickle.loads(pickled_model)
在编写用于保存和加载模型的辅助函数之后,我们只需要调用它们,如下所示
#saving model to mongodetails = save_model_to_db(model = xgb, client ='mongodb://localhost:27017/', db = 'mydatabase', dbconnection = 'customers', model_name = 'myxgb')#fetching model from mongoxgb = load_saved_model_from_db(model_name = details['model_name'], client = 'mongodb://localhost:27017/', db = 'mydatabase', dbconnection = 'customers')print(xgb.predict(X_test))
[1 0 2 1 1 0 1 2 1 1 2 0 0 0 0 1 2 1 1 2 0 2 0 2 2 2 2 2 0 0 0 0 1 0 0 2 1 0 0 0 2 1 1 0 0 1 1 2 1 2]
使用python可以轻松地在数据库中保存和加载模型。保存这些模型后,我们可以在将来随时使用它们。
python保存模型的路径怎么写_使用python在MongoDB中保存机器学习(ML)和深度学习(DL)模型...相关推荐
- python后端开发工作内容怎么写_【Python后端开发岗位职责_Python后端开发职责/工作内容】-猎聘岗位职责频道...
python后端开发工程师 深圳市超频三科技股份有限公司 深圳市超频三科技股份有限公司,超频三,超频三科技,超频三 职责: 1.负责集成各种维度的数据源,使用各种数据获取技巧,转换.分析.调度.存储数 ...
- HALCON 21.11:深度学习笔记---模型(8)
HALCON 21.11:深度学习笔记---模型(8) HALCON 21.11.0.0中,实现了深度学习方法. 本章阐述了HALCON中深度学习(DL)模型的一般概念和数据处理. 从概念上讲,HAL ...
- 深度学习英文文献_文献速递 | 预测术后30天死亡率的深度学习模型
文献基本信息 题目:Deep-learning model for predicting 30-day postoperative mortality 作者:Bradley A. Fritz , et ...
- keras 受限玻尔兹曼机_目前深度学习的模型有哪几种,适用于哪些问题?
深度学习的模型有很多, 目前开发者最常用的深度学习模型与架构包括 CNN.DBN.RNN.RNTN.自动编码器.GAN 等.雷锋网搜集整理了涉及以上话题的精品文章,供初学者参考,加速深度学习新手入门. ...
- 深度学习算法模型_不到5分钟的3种深度学习算法,第2部分深度顺序模型
深度学习算法模型 In the last article, we looked at models that deal with non-time-series data. Time to turn ...
- 人脸口罩检测现开源PyTorch、TensorFlow、MXNet等全部五大主流深度学习框架模型和代码...
号外!号外! 现在,AIZOO开源PyTorch.TensorFlow.MXNet.Keras和Caffe五大主流深度学习框架的人脸检测模型和代码啦! 先附上Github链接为敬. https://g ...
- 深度学习实战——模型推理优化(模型压缩与加速)
忆如完整项目/代码详见github:https://github.com/yiru1225(转载标明出处 勿白嫖 star for projects thanks) 目录 系列文章目录 一.实验思路综 ...
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...
- 深度学习基本模型浅析
深度学习基本模型浅析 前言 台湾李宏毅的深度学习课程说实话讲得还是比较不错的,有需要的话还是比较推荐学习,这篇也是基于它的深度学习基本结构的讲解的总结. 深度学习的三个步骤 深度学习首先是我们要构建一 ...
最新文章
- 美多商城之商品(首页广告)
- “sudo: go:找不到命令”完美解决方案
- 返回指定大小的数组_python中数组和矩阵的基础以及应用
- Apache Ant安装 验证
- 模型算法-支持向量机SVM
- 【项目实践】【01】发货管理系统 SPS (2007年12月23日更新)
- [SCOI2015]小凸玩矩阵 (匈牙利+二分)
- 【渝粤教育】国家开放大学2018年春季 0111-21T妇产科护理学 参考试题
- Spring ScheduledTimerTask 定时任务执行
- Redis开发运维实践上线部署规划之内存规划
- NGN学习笔记8——NGN的安全问题
- .net MVC小尝试
- 分享2022年淘宝/天猫/京东618自动任务助手,带抢购功能源码
- 统计软件简介与数据操作
- Centos宝塔面板清理垃圾空间
- vue:如何实现文字竖排
- 教你使用SQLite Autoincrement(自动递增)
- PlayStation5上手体验
- HashSet和HashMap
- Java实战项目开发视频教程分享
热门文章
- linux int64_t 头文件,这对int64_t的处理是GCC和Clang的错误吗?
- oracle11g session,Oracle11g中Killsession心得
- 以图搜图 图像匹配_图像匹配,基于深度学习DenseNet实现以图搜图功能
- linux80端口检查,Linux下基于端口的服务检查脚本
- 双基因突变患者_双任务干预对携带LRRK2基因突变的帕金森病患者手灵活性的影响...
- MATLAB(四)在高等数学中的应用
- 二维与三维之间的桥梁——点云
- itextPdf~将PDF页面大小转为A4格式
- python语言中包含的标准数据类型_Python对象——标准类型的分类
- oracle告警日志备份,教你怎样用Oracle方便地查看报警日志错误