CV工具:可视化工具wandb(一)实验跟踪 Experiment Tracking
实时追踪和可视化实验、比较baseline和快速迭代。参考自:https://docs.wandb.ai/guides/track
1. 在代码中集成W&B
wandb.init()
:在代码的最开始初始化一次新的运行。此代码会返回一个Run
对象,然后会创建一个本地的目录,这个目录里面存放所有的日志和文件,然后会异步地传输到W&B的服务器上。如果想要使用一个私有的服务器,也可以使用Self-Hostingwandb.config
: 保存一个超参数的字典。在config中保存的模型设置对后面的组织和查询结果有用。wandb.log()
: 将一个训练循环中的参数记录在日志里。默认情况下,当你调用此行代码时,它会在history
对象中追加一个新的step,然后更新summary
对象history
: 是一个类似字典的数组,它追踪模型参数和指标随时间的变化。时间序列的值默认情况下是以图表形式展示的summary
: 默认情况下,使用wandb.log()
记录的衡量指标的最后一个值。可以通过手动设置让它记录最高或者最低的指标。
wandb.log_artifact
: 保存一次运行中的输出,例如模型的权重或者预测的结果。这可以让你不仅仅追踪模型的训练,而且还追踪所有的对最后模型有影响的流水线步骤。
2. Best Practices
一些指导方针:
- Config: 用于记录超参数、架构、数据集以及任何你想用来复现模型的东西。这些会在column中展示出来,可以使用config columns来分组、排序或者是在app中动态过滤运行。
- Project:一个project是一个实验的集合,你可以对其中的实验进行比较。每个project有一个专用的仪表盘页面,你可以很容易地开启或者关闭运行组(group of runs),以此来比较不同的模型版本
- Notes: 一个快速提交给自己的消息,这个可以在代码中设置以及在表格(table)中编辑
- Tags: 查找(indentify)baseline和最喜欢的运行(runs)。可以通过tags来过滤
import wandb
config = dict (
learning_rate = 0.01,
momentum = 0.2,
architecture = "CNN",
dataset_id = "peds-0192",
infra = "AWS",
)
wandb.init(
project="detect-pedestrians",
notes="tweak baseline",
tags=["baseline", "paper1"],
config=config,
)
3. 什么数据被记录到日志里?
3.1 自动记录的
- 系统指标: CPU\GPU\网络等情况。显示在run页面的system标签下。对于GPU来说,这些记录的参数可以通过
nvidia-smi
获取。 - 命令行: run页面的logs标签下记录了标准输出及标准错误输出的内容。
3.2 需要通过特定代码调用记录的
- Dataset: 可以指定以及特定的数据集样本然后上传到W$B
- PyTorch 梯度信息: 在代码中添加
wandb.watch(model)
来查看权重梯度的直方图信息。 - 配置信息:记录超参、指向数据集的链接或者你正在使用的架构的名称,像这样使用:
wandb.init(config=your_config_dictionary)
- Merics指标: 使用
wandb.log
来查看模型的指标。会实时更新。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!