1 使用 wandb进行可视化训练过程
本文章将从wandb的安装、wandb的使用、demo的演示进行讲解。
1.1 如何安装wandb?
wandb的安装比较简单,在终端中执行如下的命令即可:
cmd
pip install wandb
在安装完成之后,我们需要,去官网注册一个自己的账号并复制一下自己的API keys,在本地进行登录即可:
cmd
wandb login
1.2 wandb的使用
其实wandb的使用是十分简单的,仅需要在自己的代码加入几行代码即可:
python
import wandb
wandb.init(project = "my-project", entity = "my-name")
这里的project 和 entity是wandb上创建项目的名称和用户名,可以在官网上参考创建项目,官方文档
使用 wandb.init() 在 Python 脚本或笔记本中初始化 W&B Run 对象,并使用超参数名称和值的键值对将字典传递给参数:config
python
run = wandb.init(
# Set the project where this run will be logged
project="my-awesome-project",
# Track hyperparameters and run metadata
config={
"learning_rate": 0.01,
"epochs": 10,
},
)
运行是 W&B 的基本组成部分。您将经常使用它们来跟踪指标、创建日志、创建作业等。
1.3 demo的演示
综上所述,训练脚本可能类似于以下代码示例。突出显示的代码显示特定于 W&B 的代码。 请注意,我们添加了模拟机器学习训练的代码。
python
# train.py
import wandb
import random # for demo script
wandb.login()
epochs = 10
lr = 0.01
run = wandb.init(
# Set the project where this run will be logged
project="my-awesome-project",
# Track hyperparameters and run metadata
config={
"learning_rate": lr,
"epochs": epochs,
},
)
offset = random.random() / 5
print(f"lr: {lr}")
# simulating a training run
for epoch in range(2, epochs):
acc = 1 - 2**-epoch - random.random() / epoch - offset
loss = 2**-epoch + random.random() / epoch + offset
print(f"epoch={epoch}, accuracy={acc}, loss={loss}")
wandb.log({"accuracy": acc, "loss": loss})
# run.log_code()
就是这样!导航到 W&B 应用程序,查看 https://wandb.ai/home 中我们使用 W&B 记录的指标(准确性和损失)在每个训练步骤中是如何改进的。