边写代码边学习之mlflow

1. 简介


MLflow 是一个多功能、可扩展的开源平台,用于管理整个机器学习生命周期的工作流程和工件。 它与许多流行的 ML 库内置集成,但可以与任何库、算法或部署工具一起使用。 它被设计为可扩展的,因此您可以编写插件来支持新的工作流程、库和工具。

MLflow 有五个组件:

MLflow Tracking:用于在运行机器学习代码时记录参数、代码版本、指标、模型环境依赖项和模型工件的 API。 MLflow Tracking 有一个用于查看和比较运行及其结果的 UI。 MLflow Tracking UI 中的这张图片显示了将指标(学习率和动量)与损失指标联系起来的图表:

MLflow Models::一种模型打包格式和工具套件,可让您轻松部署经过训练的模型(来自任何 ML 库),以便在 Docker、Apache Spark、Databricks、Azure ML 和 AWS SageMaker 等平台上进行批量或实时推理。 此图显示了 MLflow Tracking UI 的运行详细信息及其 MLflow 模型的视图。 您可以看到模型目录中的工件包括模型权重、描述模型环境和依赖项的文件以及用于加载模型并使用模型进行推理的示例代码:

MLflow Model Registry:集中式模型存储、API 集和 UI,专注于 MLflow 模型的批准、质量保证和部署。

MLflow Projects:一种用于打包可重用数据科学代码的标准格式,可以使用不同的参数运行来训练模型、可视化数据或执行任何其他数据科学任务。

MLflow Recipes:预定义模板,用于为各种常见任务(包括分类和回归)开发高质量模型。

2. 代码实践

2.1. 安装mlflow

pip install mlflow

2.2. 启动mlflow

方式一:命令窗口 -- 只能查看本地的数据

mlflow ui

方式二:启动一个server 跟踪每一次运行的数据

mlflow server

用方式二的话,你要添加下面代码

mlflow.set_tracking_uri("http://192.168.0.1:5000")
mlflow.autolog()  # Or other tracking functions

2.3. 用方式二启动之后你发现创建了下面文件夹

2.4. 访问mlflow

localhost:5000

运行下面代码测试。加三个参数(config_value, param1和param2), 加一个metric和一个文件

log_params: 加参数

log_metric: 加metric

log_artifact : 加相关的文件

import os
from random import random, randint
from mlflow import log_metric, log_param, log_params, log_artifacts
import mlflowif __name__ == "__main__":mlflow.set_tracking_uri("http://localhost:5000")# mlflow.autolog()  # Or other tracking functions# Log a parameter (key-value pair)log_param("config_value", randint(0, 100))# Log a dictionary of parameterslog_params({"param1": randint(0, 100), "param2": randint(0, 100)})# Log a metric; metrics can be updated throughout the runlog_metric("accuracy", random() / 2.0)log_metric("accuracy", random() + 0.1)log_metric("accuracy", random() + 0.2)# Log an artifact (output file)if not os.path.exists("outputs"):os.makedirs("outputs")with open("outputs/test.txt", "w") as f:f.write("hello world!")log_artifacts("outputs")

之后你会发现在mlflow中出现一条实验数据

点击之后,你会发现下面数据。三个参数,一个metrics数据以及一个在artifacts下的文件。

运行下面实验代码

import mlflowfrom sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes
from sklearn.ensemble import RandomForestRegressormlflow.set_tracking_uri("http://localhost:5000")
mlflow.autolog()db = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(db.data, db.target)# Create and train models.
rf = RandomForestRegressor(n_estimators=100, max_depth=6, max_features=3)
rf.fit(X_train, y_train)# Use the model to make predictions on the test dataset.
predictions = rf.predict(X_test)

之后你会发现mlflow server 里出现了例外一条实验数据

在mlflow server 取出你的模型做测试

import mlflowfrom sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes
mlflow.set_tracking_uri("http://localhost:5000")db = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(db.data, db.target)logged_model = 'runs:/acb3db6240d04329acdbfc0b91c61eca/model'# Load model as a PyFuncModel.
loaded_model = mlflow.pyfunc.load_model(logged_model)predictions = loaded_model.predict(X_test[0:10])
print(predictions)

运行结果

[117.78565758 153.06072713  89.82530357 181.60250404 221.44249587125.6076472  106.04385223  94.37692115 105.1824106  139.17538236]

参考资料

MLflow - A platform for the machine learning lifecycle | MLflow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/163671.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式:单例模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

大家好!本节主要介绍设计模式中的单例模式。 简介: 单例模式,它是一种常用的软件设计模式,它属于创建类型。单例模式的主要目的是确保一个类仅有一个实例,并提供一个全局访问点。 在单例模式中,一个类只有…

世界国家/地区行驶方向数据

Part1数据背景 道路通行方向规则是交通规则的重要部分之一。不同国家及地区通行方向并不一样,受风俗、习惯、风潮因素等影响。 最近也在学道路行驶,结果差强人意,继续努力吧。祝学车的小伙伴们一次过~ Part2数据详情 今天分享的国家/地区行…

C语言——二周目——输入输出辨析

一、对输入输出的理解 1.明确输入的意义 以往的输入为默认形式(标准输入流——stdin——键盘)。但是输入的形式不止此一种。可以从键盘上敲出输入的数据,同时也可以将文件中、某个字符串甚至结构体的数据作为输入内容进行输入。 输入&#x…

Required MultipartFile parameter ‘file‘ is not present

出现这个原因我们首先想到的是加一个RequestParam("file")&#xff0c;但是还有可能的原因是因为我们的名字有错误 <span class"input-group-addon must">模板上传 </span> <input id"uploadFileUpdate" name"importFileU…

采用Spring Boot框架开发的医院预约挂号系统3e3g0+vue+java

本医院预约挂号系统有管理员&#xff0c;医生和用户。管理员功能有个人中心&#xff0c;用户管理&#xff0c;医生管理&#xff0c;科室信息管理&#xff0c;预约挂号管理&#xff0c;用户投诉管理&#xff0c;投诉处理管理&#xff0c;通知公告管理&#xff0c;科室分类管理。…

python爬虫入门详细教程-采集云南招聘网数据保存为csv文件

目录 网站地址数据提取技术介绍采集目标流程分析python代码实现教程和代码仅供学习交流&#xff0c;请勿用于其他非法用途&#xff01;欢迎加入python学习交流QQ群&#xff1a;891938703 网站地址 https://www.ynzp.com/ 这个网址特别适合新手拿来练习&#xff0c;你采集多了还…

【Java基础面试二十四】、String类有哪些方法?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;String类有哪些方法&…

10.17课上(七段显示器,递归异或与电路)

异或的递归与数电实现 用二选一选择器实现异或函数 在异或当中&#xff0c;如果有一项为0&#xff0c;就可以把那一项消掉&#xff1b;如果有一项为1&#xff0c;就是把剩下的所有项运算完的结果取反 &#xff08;由此在算法当中可以采用递归解决&#xff09; 当w1为0时&…

CleanMyMac苹果电脑清理软件是智商税吗?最全评测价格、清理效果一次说清

这是一篇CleanMyMac最全评测&#xff01;价格、清理效果一次说清&#xff0c;告诉你它真不是智商税! 升级Ventura系统之前&#xff0c;我用的是CleanMyMac X绿色版&#xff08;绝不提倡这个行为&#xff09;。更新到Ventura之后&#xff0c;之前很多绿色软件失效&#xff0c;浪…

TP5.1 导出excel文件

在 ThinkPHP 5.1 中引入 PHPExcel&#xff08;现在已被官方弃用&#xff0c;推荐使用 PhpSpreadsheet&#xff09;时&#xff0c;可以按照以下步骤进行操作&#xff1a; 在 composer.json 文件中添加 PHPExcel&#xff08;PhpSpreadsheet&#xff09;的依赖项。找到 require 部…

Pygame中实现图片的移动

在《Pygame中将鼠标形状设置为图片2-1》和《Pygame中将鼠标形状设置为图片2-2》中提到将鼠标设置为指定图片。接下来在该文章涉及到的代码基础之上&#xff0c;实现图片的移动&#xff0c;效果如图1所示。 图1 图片移动效果 从图1中可以看出&#xff0c;导入一个大猩猩的图片&…

DayDreamInGIS 逆地理编码工具(根据经纬度获取位置描述)插件源码解析

本工具调用高德地图逆地理编码api&#xff0c;根据高的地图逆地理编码api&#xff0c;实现根据经纬度获取位置描述。 总体设计逻辑&#xff0c;窗体采用WPF&#xff0c;通过属性的方式传递交互对象&#xff0c;核心处理逻辑写到button的执行逻辑中。 1.页面 页面XAML&#xf…

掌握JavaScript的练习之道:十个手写函数让你信手拈来!

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

MySQL事务MVCC详解

一、概述 MVCC (MultiVersion Concurrency Control) 叫做多版本并发控制机制。主要是通过数据多版本来实现读-写分离&#xff0c;做到即使有读写冲突时&#xff0c;也能做到不加锁&#xff0c;非阻塞并发读&#xff0c;从而提高数据库并发性能。 MVCC只在已提交读&#xff08…

行业追踪,2023-10-18

自动复盘 2023-10-18 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

Docker是一个流行的容器化平台,用于构建、部署和运行应用程序。

文章目录 Web应用程序数据库服务器微服务应用开发环境持续集成和持续部署 (CI/CD)应用程序依赖项云原生应用程序研究和教育 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;…

mysql查看连接池的命令

查看实时连接的个数 &#xff08;瞬时值&#xff09; SHOW STATUS LIKE Threads_connected; 查看具体的链接信息 show full processlist; 数据库链接池常见的报错 Cannot create PoolableConnectionFactory (Data source rejected establishment of connection, message fr…

Android Fragment 基本概念和基本使用

Android Fragment 基本概念和基本使用 一、基本概念 Fragment&#xff0c;简称碎片&#xff0c;是Android 3.0&#xff08;API 11&#xff09;提出的&#xff0c;为了兼容低版本&#xff0c;support-v4库中也开发了一套Fragment API&#xff0c;最低兼容Android 1.6。 过去s…

Swift使用Embassy库进行数据采集:热点新闻自动生成器

概述 爬虫程序是一种可以自动从网页上抓取数据的软件。爬虫程序可以用于各种目的&#xff0c;例如搜索引擎、数据分析、内容聚合等。本文将介绍如何使用Swift语言和Embassy库编写一个简单的爬虫程序&#xff0c;该程序可以从新闻网站上采集热点信息&#xff0c;并生成一个简单…

Redis的五大基础数据类型

String 字符串类型&#xff0c;通过set关键字和get关键字来设置字符串键值对和获取字符串键值对。 hash 哈希类型&#xff0c;结构和Map<String,Map<String,stirng>>类似。 使用hset来设置哈希&#xff0c;使用hget来获取哈希&#xff0c;hget要精确到第二个key…