ClearML入门:简化机器学习解决方案的开发和管理

这篇具有很好参考价值的文章主要介绍了ClearML入门:简化机器学习解决方案的开发和管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0、ClearML介绍

ClearML 是一个开源平台(之前叫TRAINS),可为全球数千个数据科学团队自动化并简化机器学习解决方案的开发和管理。它被设计为端到端的MLOps套件,允许您专注于开发ML代码和自动化,而ClearML确保您的工作可重复和可扩展。

  • 仅用 2 行代码跟踪和上传指标和模型
  • 创建一个机器人,每当模型的准确性提高时,该机器人就会向你发送 Slack 消息
  • 通过 3 次鼠标点击重现实验

简单来讲,比如你进行深度学习的训练,会涉及到输入的超参数管理、控制台输出保存用于复现、模型文件存档、环境信息等。比如有时候训练好的项目还没来得及记录分析软件或系统问题而丢失,如果要保存就要把以上信息都保存为本地文件,而分析时又要从众多实验结果小心处理,令人抓狂。

而ClearML就是一款管理软件,记录实验后,可以在网页登录自己的账户查看,接下来直接展示一下常用功能的效果:
ClearML入门:简化机器学习解决方案的开发和管理

实验管理分了级,如下图所示,首先是项目,项目下有多个实验(项目下也可以是项目),这都是自定义的,比如该段时间你做这个实验,则可以新建一个项目,该改实验的所有不同实验都记录在该项目下。

如下图,该项目(图二)有两个实验,是除了学习率不同的两个实验
ClearML入门:简化机器学习解决方案的开发和管理
ClearML入门:简化机器学习解决方案的开发和管理
我们来查看"lr adjust 0.1"这个实验的详情,每个实验详细记录了信息,有8个页卡,我们展示几个页卡效果,(更多详情见文档)ClearML入门:简化机器学习解决方案的开发和管理
EXECUTION:该页卡记录代码(仅运行代码,其他关联代码能够记录我也暂不知道)、安装的相关库、Docker映像、项目输出目标以及日志记录级别

CONFIGURATION:超参数、用户属性和配置对象。每个实验都有超参数,比如命令行指定epoch、lr等,都会被记录在该页卡
ClearML入门:简化机器学习解决方案的开发和管理

ARTIFACTS:输入模型、输出模型、模型快照位置、其他工件。比如模型权重你想保存快照,也是可以的,保存后会在这里提供链接

INFO:有关实验的信息,例如:实验开始、环境信息、创建和上次更新时间和日期、创建实验的用户及其说明。部分截图如下:
ClearML入门:简化机器学习解决方案的开发和管理

CONSOLE:stdout、stderr、从库输出到控制台和 ClearML 显式报告。比如控制台的输出或者pycharm等软件运行后的显示等,都会被记录。如下图所示,这避免了因关闭控制台或软件后,输出信息丢失的问题,方便随时复盘。ClearML入门:简化机器学习解决方案的开发和管理

SCALARS:该页卡效果如图,也就是我们可以在训练时通过ClearML的API来记录数值,比如acc,loss等信息,然后在该页卡就会被可视化展示。
ClearML入门:简化机器学习解决方案的开发和管理
PLOTS:其他 Plot 和数据,例如:Matplotlib、Plotly 和 ClearML 显式报告。
DEBUG SAMPLES:图像、音频、视频和 HTML

当然这里只是介绍了ClearML对我有用的一些常用功能,实际上ClearML作为一款简化机器学习解决方案的开发和管理,绝不仅是“记录”,更多功能可以详见官网文档CLEAR | ML

1、一个最简单的使用例子

在你的代码加入代码:

from clearml import Task
task = Task.init(project_name="", task_name="")

一个project可以有很多个task,拥有相同project的task会被归于同一个project下。如果project_name不存在,则直接新建该project,每一次实验就是一个task。

两行代码就能将你的程序的命令行输入和命令行输出记录下来,下面图一展示了代码及控制台的信息,图二是clearml平台记录的本次程序运行(当然还有环境信息,参数等都被记录了)
ClearML入门:简化机器学习解决方案的开发和管理
ClearML入门:简化机器学习解决方案的开发和管理

那么问题来了,我在本地插入两行代码,而在clearml网页端可以查询到实验信息,说明本地代码是上传了实验细节的,所以需要注册一个clearml账号和配置本地账户的步骤

2、注册账号、pip安装和配置本地账户

2.1 注册

注册账号不用多说去官网注册即可。

然后进入个人主页后,点击右上角ClearML入门:简化机器学习解决方案的开发和管理然后点击“Setting”,然后按下图依次点击创建许可证书(用于本地账户配置),然后会给出一串JSON格式的API,复制到本地(因为只会出现一次)。
ClearML入门:简化机器学习解决方案的开发和管理

2.2 pip安装和配置本地账户

安装教程参考的官网

安装:pip install clearml
配置(安装后继续键入):clearml-init
此时会出现粘贴api的提示,按下图处理即可(我们使用官方的,所以后面三个全直接回车即可),如果最后出现successfully说明配置成功ClearML入门:简化机器学习解决方案的开发和管理

至此我们已经完成本地pip安装和账户配置,然后再次尝试一下第1节的最简单的使用例子,如果正常运行,就能在官网平台看到
你设定的project和task了

3、记录超参数

3.1 记录超参数

虽然第1节能够记录命令行传入的参数,但是比如我们使用argparse设定了很多参数但是含有使用默认值的参数,是不需要从命令行传入的,那么就不会被记录,所以我们可以使用Task.connect()来直接手动记录超参数。

Task.connect 方法直接将 Python 对象(如字典和自定义类)连接到任务。一旦对象连接到任务,ClearML会自动记录所有对象元素(例如.class成员,字典键值对)。此外,ClearML 还会跟踪这些值在代码中的变化。

如下图所示,argparse解析后的是键值对NameSpace,可以通过connect直接记录所有超参数(name通过命令行指定,epoche使用的默认值)ClearML入门:简化机器学习解决方案的开发和管理
可以看到确实超参数都被记录了
ClearML入门:简化机器学习解决方案的开发和管理

3.2 追加超参数

比如3.1节,记录了args后,我想继续记录lr的值,那么可以:

task.connect(args)

hp={"lr":0.01}	# 形成字典
task.connect(hp)	

3.3 超参数优化模块

官方文档:超参数优化模块

这个功能我还没有使用过,但是肯定对于调参是非常有用的,感兴趣的可以先自行了解

4、记录SCALARS

官方文档:SCALARS

我们像记录训练中的acc和loss等值,形成类似TensorBoard这种折线图,就要用到SCALARS

clearml的Logger类是用来显式记录(类似手动记录,比如超参数可以手动connect来记录,更加灵活),所以SCALARS也是用Logger来记录

核心代码其实只有一句:

from cearml import Logger	# 导入
logger = Logger.current_logger()	# 实例化
logger.report_scalar( title='', series=', value, iteration )

比如将Train和Valid的Loss记录,value是标量(不是tensor等类型,要转换成python的浮点数等)

logger.report_scalar(title='Loss', series='Train', value=train_loss, iteration=epoch)
logger.report_scalar(title='Loss', series='Valid',  value=val_loss,  iteration=epoch)

你大概会得到这样一张图
ClearML入门:简化机器学习解决方案的开发和管理

5、记录文件

Artifacts Reporting | ClearML

Artifacts能轻松记录实验的输出包括model快照权重文件等,本质上Artifacts就是文件,通过代码中的clearml自动上传。

比如在训练时,需要从不同py脚本导入不同模型定义,然后开始训练。为了方便后面分析,除了记录实验过程外,希望能记录模型定义的代码,则可以通过Artifacts将定义模型的.py文件上传保存:

net_path="utils/models/cbam.py"
task.upload_artifact(name="net path",artifact_object=net_path)

ClearML入门:简化机器学习解决方案的开发和管理
点击下载箭头就会新开网页看到文件内容,方便复盘。

Artifacts可以记录(上传)的包括但不限于:Pandas DataFrames、Numpy object、字典、本地文件、文件夹、模型/权重等。

# 新建Pandas DataFrames并上传
# 唯一支持动态跟踪的类型,详见官方文档
df = pd.DataFrame(
        {
            'num_legs': [2, 4, 8, 0],
            'num_wings': [2, 0, 0, 0],
            'num_specimen_seen': [10, 2, 1, 8]
        },
        index=['falcon', 'dog', 'spider', 'fish']
    )
task.upload_artifact(name='pd DataFrame', artifact_object=df)	

# 新建Numpy object数据并上传
task.upload_artifact(name='Numpy Eye', artifact_object=np.eye(100, 100))

# 新建dict数据并上传
task.upload_artifact(name='dict',artifact_object={"1":20,"2":55})

# 上传本地文件
task.upload_artifact('/path/to/preprocess_data.csv', name='data')

# 上传文件夹,会被自动打包以压缩包被记录
task.upload_artifact(name='folder', artifact_object=r"utils\models\hub")

# 通配符、pillow_image等......

保存模型快照/权重:PyTorch 模型更新|ClearML文章来源地址https://www.toymoban.com/news/detail-440308.html

到了这里,关于ClearML入门:简化机器学习解决方案的开发和管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

    机器学习的老师在一次作业中给出了这几个思考的问题,本文从前两个问题着手,若有不全或者意思错误的地方请向我指出(谢谢!) 这个问题也可以拓展为:哪种分类器比较不会受到样本不均衡的影响,或者说得不均衡到哪种程度,会对分类器的影响。 这个问题也就可以

    2023年04月08日
    浏览(42)
  • 5G 技术、云原生开发和机器学习是推动物联网解决方案的重要助力

    作者:Arm高级副总裁兼物联网事业部总经理 Paul Williamson 每次谈及物联网 (IoT),行业就会明显出现两大阵营:乐观派和悲观派。后者将物联网认定为“尚属未来”的技术。而我个人是坚定的乐观派:对于物联网解决方案有望带来的变革性创新,我既感到无比振奋,同时又保持

    2024年02月07日
    浏览(40)
  • 应用案例|基于三维机器视觉的机器人纸箱拆码垛应用解决方案

      Part.1   项目背景 在现代物流和制造行业中,纸箱的拆码垛操作是一项重要且频繁的任务。传统的纸箱拆码垛工作通常由人工完成,这种方式存在劳动强度大、生产效率低以及人为操作容易导致错误等问题,严重影响物料的安全运输和质量。为了满足物流行业大规模生产和

    2024年02月13日
    浏览(49)
  • 应用案例 | 基于三维机器视觉的机器人麻袋拆垛应用解决方案

    ​Part.1   项目背景 在现代物流和制造行业中,麻袋的拆垛操作是一个重要且频繁的任务。传统的麻袋拆垛工作通常由人工完成,分拣效率较低,人力成本较高,现场麻袋堆叠、变形严重,垛型不规则、不固定,严重影响分拣效率。 基于三维机器视觉的机器人麻袋拆垛解决方

    2024年02月10日
    浏览(56)
  • 应用案例 | 基于三维机器视觉的自动化无序分拣解决方案

    ​ 近年来,电商行业蓬勃发展,订单的海量化、订单类型的碎片化,使物流行业朝着“多品种、无边界、分类广”的方向迅速发展。根据许多研究机构的预测,电子商务销售额预计将以每年两位数的速度增长,推动整个行业的规模不断扩大。 物流分拣一直是一项单调乏味的

    2024年01月17日
    浏览(47)
  • 医疗机器人软件中的机器人安全和隐私保护:挑战和解决方案

    随着人工智能技术的发展,医疗机器人被广泛应用于各种医疗场景,如手术室、病房等。医疗机器人可以协助医生完成手术、监测患者状态等任务,提高医疗效率和精度。然而,与此同时,医疗机器人软件中的机器人安全和隐私保护问题也变得越来越重要。 医疗机器人软件中

    2024年02月16日
    浏览(51)
  • 【解决方案】多租户技术架构设计入门(一)

    目录 前言 一、多租户的概念 二、隔离模式 2.1独立数据库模式 2.2共享数据库独立数据架构 2.3共享数据库共享数据架构 三、隔离方案选型 四、架构模型 4.1模型分层 4.2模型关系 五、文章小结 多租户的概念是我在毕业后不久进第一家公司接触到的,当时所在部门的业务是计划

    2024年04月08日
    浏览(51)
  • 时间机器 Time Machine 三星T7 移动硬盘SSD解决方案

    时间机器 (Time Machine)可以将Mac电脑上的全部文件进行备份,可以使用 Mac内置硬盘 , 移动硬盘 或者 NAS 存储数据。 设备 :MacBook Air M1 系统 :macOS Big Sur 11.6 备份硬盘 :Samsung T7 SSD USB3.2 1T 时间机器使用的文件格式是macOS扩展格式,将整个硬盘格式化成此格式是不合适的,所以

    2024年02月04日
    浏览(43)
  • 广和通AI解决方案“智”赋室外机器人迈向新天地!

    大模型趋势下,行业机器人将具备更完善的交互与自主能力,逐步迈向AI 2.0时代,成为人工智能技术全面爆发的重要基础。随着行业智能化, 更多机器人应用将从“室内”走向“室外”,承担更多高风险、高智能工作。 复杂的室外环境对机器人要求更高,这对应用于室外机

    2024年01月19日
    浏览(43)
  • FANUC机器人SRVO OVC报警的解决方案及嵌入式实现

    引言: FANUC机器人是一种广泛应用于工业自动化领域的先进机器人。然而,在使用过程中可能会遇到各种故障和报警。本文将讨论FANUC机器人中的SRVO OVC报警,并提供一种嵌入式解决方案。我们将讨论该报警的原因,以及如何使用嵌入式编程语言来解决和预防这个问题。 SRVO

    2024年02月22日
    浏览(181)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包