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具有以下主要优势:
- 日志上传远端永久存储,便于分享不怕丢失 (wandb.log);
- 可以存管代码、数据集和模型的版本,随时复现(wandb.Artifact, wandb.log_artifact, wandb.save),版本会和模型的性能指标或者日志相关联;
- 可以使用交互式表格进行 case 分析 (wandb.Table,wandb.Image),可以输入文本、图像、视频等的分析;
- 可以自动化模型调参 (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文章来源:https://www.toymoban.com/news/detail-500941.html
超参搜索colab示例:https://colab.research.google.com/github/wandb/examples/blob/master/colabs/pytorch/Organizing_Hyperparameter_Sweeps_in_PyTorch_with_W%26B.ipynb文章来源地址https://www.toymoban.com/news/detail-500941.html
到了这里,关于深度学习管理工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!