深度学习管理工具

news2025/1/9 14:34:01

1. mlflow

https://zhuanlan.zhihu.com/p/363673389

官方文档: https://www.mlflow.org/docs/latest/index.html

https://zhuanlan.zhihu.com/p/67173051

在跟踪实验时,通过运行 mlflow ui 后在 http:// localhost:5000 中进行查看。目前没办法打开,也不确定是否将结果上传到mlflow的服务器中。

mlflow 主要有四大功能:Tracking、Projects、Models、Model Registry
(1) 跟踪实验以记录并比较实验参数和实验结果
(2) 以可复用可复现的方式对代码进行打包,以便不同工程师去复现
(3) 从各种ML库管理和部署模型到各种模型服务和推理平台(MLflow models)。
(4) 提供一个中央模型存储来协同管理MLflow模型的整个生命周期,包括模型版本控制、阶段转换和注释(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是给谁用的?
MLflow由数据科学家和MLOps专业人员使用。数据科学家使用MLflow来跟踪实验、结构代码、打包模型,以及审查和选择要部署的模型。MLOps专业人员使用MLflow将模型安全地部署到生产环境中,并监控部署的性能和准确性。

mlflow的一些使用案例:

(1) 一组数据科学家使用MLflow Tracking来记录他们在单个问题领域的实验参数和指标。他们使用MLflow UI来比较结果并指导他们对解决方案空间的探索。它们将运行的输出存储为MLflow模型。
(2) MLOps工程师使用MLflow UI来比较不同模型的性能,并选择最好的模型进行部署。他们在MLflow Registry中注册模型,以跟踪该特定版本在生产中的性能。
(3) MLOps工程师使用MLflow模型将模型部署到生产环境中。他们使用MLflow Registry来跟踪模型的性能,并将其与生产中的其他模型进行比较。
(4) 开始处理新项目的数据科学家将他们的代码结构为MLflow项目,以便他们可以轻松地与其他人共享并使用不同的参数运行它。

mlflow提供了一些函数接口,可以使你方面地进行实验跟踪

在这里插入图片描述

Constant values (for instance, configuration parameters)
mlflow.log_param, mlflow.log_params
Values updated during the run (for instance, accuracy)
mlflow.log_metric
Artifacts
Files produced by the run (for instance, model weights)
mlflow.log_artifacts, mlflow.log_image, mlflow.log_text

import os
from random import random, randint
from mlflow import log_metric, log_param, log_params, log_artifacts

if __name__ == "__main__":
    # Log a parameter (key-value pair)
    log_param("config_value", randint(0, 100))

    # Log a dictionary of parameters
    log_params({"param1": randint(0, 100), "param2": randint(0, 100)})

    # Log a metric; metrics can be updated throughout the run
    log_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")

2. wandb

参考视频:
https://www.bilibili.com/video/BV17A41167WX/?spm_id_from=333.337.search-card.all.click&vd_source=d01f5189f5bedbfe41e17c66006caa42

官方网站:
https://wandb.ai/site

wandb全称weights$bias,是一款类似 Tensorboard 的机器学习可视化分析工具。相比 TensorBoard,wandb具有以下主要优势:

  1. 日志上传远端永久存储,便于分享不怕丢失 (wandb.log);
  2. 可以存管代码、数据集和模型的版本,随时复现(wandb.Artifact, wandb.log_artifact, wandb.save),版本会和模型的性能指标或者日志相关联;
  3. 可以使用交互式表格进行 case 分析 (wandb.Table,wandb.Image),可以输入文本、图像、视频等的分析;
  4. 可以自动化模型调参 (wandb.sweep)

在这里插入图片描述

数据、代码、模型保存,保存还还会和各种超参数和性能指标相关联。

# resume the run
import wandb

# 指定 run_id 来恢复实验
run = wandb.init(project='wandb_demo', id=model.run_id, resume='must')

# save dataset
arti_dataset = wandb.Artifact('dataset_name', type='dataset')
arti_dataset.add_dir('dataset_dir/')
wandb.log_artifact(arti_dataset)

# save code
arti_code = wandb.Artifact('code_name', type='code')
arti_code.add_dir('code_dir/')
wandb.log_artifact(arti_code)

# save model
arti_model = wandb.Artifact('model_name', type='model')
arti_model.add_file(config.ckpt_path)
wandb.log_artifact(arti_model)

这里给出一些相关网址:

wandb官网:https://wandb.ai/site

wandb文档:https://docs.wandb.ai/v/zh-hans/

常见报错及解决:https://docs.wandb.ai/guides/sweeps/faq

模型参数可视化colab示例:http://wandb.me/pytorch-colab

超参搜索colab示例:https://colab.research.google.com/github/wandb/examples/blob/master/colabs/pytorch/Organizing_Hyperparameter_Sweeps_in_PyTorch_with_W%26B.ipynb

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ranger,hive,hdfs的三者的权限管理

ranger,hive,hdfs的三者的权限管理 情况一:连接datagrip 用户在hdfs上的权限 可以看出只给了用户write权限,尝试登录xwq用户,在datagrip上登录成功 经过实验验证:要想使用datagrip或者hive-cli登录hive…

C++11【一】

文章目录 一、C11简介二、右值引用三、可变参数模板四、 empacle_back(移动构造/赋值)五、简单特性 一、C11简介 C11是C编程语言的一个版本,于2011年发布。C11引入了很多新特性,比如:类型推导(auto关键字)、Lambda表达式、线程库、列表初始化…

电源浪涌保护器加装后备保护器的作用

随着现代化技术的发展,信息化系统集成度越来越高。设备敏感度高,抗冲击能力低,极易受到电涌脉冲的危害。电涌保护器(SPD)作为专业的防电涌产品,应用越来越广,SPD的应用涉及很多的专业知识&#…

孩子创新思维秘籍

头脑风暴最重要的原则之一就七个字, 要数量,不要质量。 意思就是说,你尽可能的去胡思乱想,胡说八道,天马行空就对了。 我们从这一大堆古灵精怪的玩意儿里面去筛选那些真正有价值的东西,可以拓展的方案。 然…

【技术选型】Redis的几种集群方案、及优缺点对比

文章目录 背景一、主从模式二、哨兵模式三、Redis Cluster四、各大厂的Redis集群方案客户端分片代理分片Codis 五、Redis集群方案解决方案六、Redis集群方案原理总结 背景 在服务开发中,单机都会存在单点故障的问题,及服务部署在一台服务器上&#xff0…

GCP学习笔记(二)——大数据和机器学习

文章目录 一、数据读取和处理1.Pub/Sub代码实践PublishingSubscribing 2. Dataflow使用Python搭建Pipeline 3. Dataproc4. Cloud Data Fusion5. 其他工具Cloud Composer (Apache Airflow)Cloud Scheduler 二、可视化与分析1. Looker2. Looker Studio3. B…

【数据结构与算法C++实现】2、二分查找与简单递归

原视频为左程云的B站教学 文章目录 1 二分法1.1 在有序数组中查找特定元素1.2 在一个有序数组中查找>某个数的最左侧的位置1.3 在一个有序数组中查找<某个数最右侧位置1.4 局部最小值问题&#xff08;无序数组使用二分法的案例&#xff09; 2 简单的递归思想 1 二分法 …

在AI热潮中,过早的卖掉Datadog股票是个非常错误的决定

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 Datadog股价 Datadog&#xff08;DDOG&#xff09;目前的股价比其历史高点低了50%左右&#xff0c;比近期低点高了50%左右。 猛兽财经上次关注Datadog是在4月份&#xff0c;当时由于该股的增长前景已经恶化&#xff0c;所以…

windows电脑hbuilderx打包iOS app及上架app store教程

ios应用&#xff0c;无法像安卓应用一样&#xff0c;上传到自己的服务器让互联网用户下载进行安装&#xff0c;所以需要将生成的app上传到app store&#xff0c;然后用户到app store安装app。 由于官网的教程是使用mac电脑生成证书和上架的&#xff0c;但是很多使用hbuilderx打…

实践指南 | 风控引擎快速接入不同数据源的操作说明

随着互联网垂直电商、消费金融等领域的快速崛起&#xff0c;用户及互联网、金融平台受到欺诈的风险也急剧增加。网络黑灰产已形成完整的、成熟的产业链&#xff0c;每年千亿级别的投入规模&#xff0c;超过1000万的“从业者”&#xff0c;其专业度也高于大多数技术人员&#xf…

Templates 虽然工具将近被淘汰,但依然会有一些场景会被使用-eclipse 格式化注释

Templates 是一款-eclipse 格式化注释模板。虽然工具将近被淘汰&#xff0c;但依然会有一些场景会被使用&#xff0c;今天就来分享一下自己用过的一款&#xff0c;已经去掉不常用的&#xff0c;保留必要的模板内容。 设置方法如下&#xff1a; 设置Code Templates&#xff0c…

Java-定时任务

文章目录 补充&#xff1a;cron表达式基本知识方式一&#xff1a;使用sleep方法方式二&#xff1a;JDK Timer和TimerTask方式三&#xff1a;JDK ScheduledExecutorService方式四&#xff1a; Spring Task 中 的 Scheduler方法五、Quartz框架方式六&#xff1a;XXL-JOB将xxl-job…

canvas实现简易画板

效果图如下&#xff1a; 实现功能&#xff1a; 1、改变画笔粗细 2、保存签名实现下载功能 3、使用橡皮擦功能 4、清空画布 5、改变画笔颜色 实现代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta …

ChatGPT新功能曝光:可记住用户信息、上传文件和工作区

&#x1f989; AI新闻 &#x1f680; ChatGPT新功能曝光&#xff1a;可记住用户信息、上传文件和工作区 摘要&#xff1a;一张神秘截图曝光了ChatGPT新功能&#xff0c;包括可记住用户信息的"My profile"、上传和管理文件的"My files"以及可以让AI使用不…

从Wi-Fi,蓝牙,到4G,5G,到卫星网络,频谱共享已无处不在

在智能手机像牙刷一样普及的今天&#xff0c;频谱共享&#xff0c;成为了近些年通信界的一个热词儿。频谱因为通信的重要而变得越发重要&#xff0c;又因为频谱是一种稀缺资产&#xff0c;而使用需求又在日益飞速地增长&#xff0c;所以成为重中之重。智能手机、物联网、军事和…

【QT】枚举常用宏到底有什么作用?(Q_ENUM,Q_FLAG,Q_DECLARE_FLAGS,Q_DECLARE_OPERATORS_FOR_FLAGS)

目录 1. Q_ENUM宏 与 QMetaEnum类1.1 Q_ENUM宏的作用1.2 使用Q_ENUM注意的问题1.3 在写有关枚举的代码时&#xff0c;我们可能遇到这种情况&#xff1a;需要用到枚举的字符串&#xff0c;该怎么办&#xff1f;1.4 下面通过一段简单的代码来说明Q_ENUM的作用 2. Q_FLAG宏2.1 Q_F…

satellite: 利用TLE动态计算并实时显示多颗卫星的位置及轨迹

本示例的目的是介绍演示如何在vue+satellite项目中利用两行根数动态地计算,并显示多个卫星的位置及轨迹。每秒钟更新一下卫星的位置和角度,加载当前时间到固定时间(如720分钟后)的一段轨迹。 直接复制下面的 vue+openlayers源示例代码,操作2分钟即可运行实现效果 文章目…

DDD领域驱动设计基本理解

DDD是一种软件设计思想和方法论&#xff0c;以领域为核心构建软件设计体系&#xff0c;将业务模型抽象成领域模型进行拆解和封装。本文简要介绍DDD的基本概念和常用的分层设计架构&#xff0c;并结合业务场景进行领域驱动设计的实战分析&#xff0c;以加深理解。 1、DDD领域驱动…

opencv通过轮廓去除虚线

思路&#xff1a; 将虚线膨胀为实线&#xff0c;通过高度和宽度找到轮廓&#xff0c;再将轮廓内的面积涂白色 img cv2.imread(imagePath) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gray_test gray.copy() binary_test cv2.adaptiveThreshold(clean_gray(gray_test),25…

做项目,最难搞定的不是甲方爸爸...

早上好&#xff0c;我是老原。 前几天和一个老朋友吃饭的时候&#xff0c;他和我吐槽他上个月做的一个项目&#xff0c;实在太累了&#xff0c;几乎是没日没夜地赶进度&#xff0c;身体都快垮了。 我问他既然时间来不及&#xff0c;为什么不前期就和客户沟通好。 他说其实客…