记录一下使用 wandb 过程中的一些知识和技巧。

# 安装

pip install wandb

# 登陆

在安装好 wandb 后,需要登陆账号。在虚拟环境下输入

wandb login

然后打开 https://wandb.ai/authorize 网站,将网站中的 API 粘贴到命令行中即可。需要注意的是,打开网站前需要先在官网注册并登陆 wandb 账号。

此处的 wandb 登陆是全局通用的,即更换虚拟环境后,wandb 的登陆账号不会主动发生更换。如果需要登陆别的账号,则需要使用命令

wandb login --relogin

进行重新登陆。

# 在 Python 中使用 wandb

在 Python 中使用 wandb 首先需要引入 wandb 库,即

import wandb

# 初始化

要在代码中使用 wandb, 需要首先示例化 wandb. 即

wandb.init(
    entity="entity_name", 
    project="project_name", 
    name="run_name",
    mode="online", 
    config=config_dict
)

wandb.init() 会新建一个后台进程以记录数据并同步到在线平台。 entityproject 是在 wandb 网站上新建的实体和项目,分别表示运行 wandb 的账号和项目名称, name 是当前运行实验的名称, mode 是运行模式,包括 online , offline , 和 disabled 三种。 config 是配置字典,用于记录一些超参数。

# 记录数据

在初始化 wandb 后,就可以开始记录数据了。记录数据的方法包括 wandb.log()wandb.watch() .

wandb.log() 用于记录一些数据,包括标量、图片、表格、音频、视频、文本、模型、对象等。例如,记录一个标量数据

wandb.log({"loss": loss, "accuracy": accuracy})

需要注意的是,每调用一次 wandb.log() , wandb 内部进程的步数 step 就会加一。这样如果每五次训练进行一次验证和测试,最终的 step 值是 epoch 值的约 1.2 倍,因此在展示图中需要手动将横轴从 step 调整为 epoch.

wandb.watch() 用于记录模型参数,包括模型结构、参数值、梯度等。例如,记录一个模型

wandb.watch(model)

嗯... 这个其实还没用到。

# ref

  • 官方文档
    • 官方文档 - Python