记录一下使用 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()
会新建一个后台进程以记录数据并同步到在线平台。 entity
和 project
是在 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