为大家分享一款目前个人觉得操作非常简单,但是性能强大的一款深度学习网络可视化的插件。如果习惯于使用TensorBoard的同学应该会很快爱上它。支持多个深度学习网络框架(包括Hugging Face~) |
Wandb的功能:
- 调参:存储训练参数,自动分析参数关联,助力快速调参
- 看板:同步本地实验结果,并进行实时可视化展示
- 报告:结果自动同步云端,永久记录实验的过程,可用于模型改进探索及团队分享
- 自动记录CPU、GPU等系统硬件利用情况
- 自动记录控制台打印的训练日志,以及环境依赖等参数项
以上的所有内容,只需几行代码就能实现
import wandb
# create your model
model = TaskModel()
wandb.init(project="your project name")
wandb.watch(model)
如何使用?
1 安装
wandb是一个Python库,所以可以直接通过pip来安装:
pip install wandb
2 注册登陆
然后在wandb官网注册一个账号,并创建你的Team(可以拉入其它小伙伴)和你的Project,然后获取你的账号的私钥。在命令行执行:
wandb login
按提示输入API Key信息。
3 实例化
import wandb
# 还有其它参数可以配置
wandb.init(project="your_project_name")
4 使用方法
from transformers import BertModel
import wandb
# create your model
model = BertModel()
wandb.init(project="your project name")
#将model放进去会自动的检测训练过程中的模型不同组件的梯度信息
wandb.watch(model)
# 伪代码,以可视化loss例, 和tensorboard使用方式类似
for epoch in range(epochs):
all_loss = []
for item in data_loader:
logits = model(item.x)
loss = loss_f(logits, item.y)
all_loss.append(loss.item)
wandb.log({'train/loss': mean(all_loss)}, step=epoch)
wandb.watch(model) :可以为我们监视模型各个模块的梯度变化,例如:
如何本地部署?
1 拉取wandb server的docker镜像
#服务器上需要预先安装Dokcer
docker pull wandb/local
2 在https://deploy.wandb.ai/deploy 页面中申请得到 License
3 启动
sudo docker run --rm -d -e LOCAL_RESTORE=true -e HOST=http://<your host>:8080 -e LICENSE=<your license> -p 8080:8080 --name wandb-local wandb/local
4 手动添加用户
细节见: https://github.com/wandb/local/issues/66
# login the container
docker exec -it wandb-local bash
vi /vol/env/users.htpasswd
# delete the line contain local@wandb.com
/usr/local/bin/local password <your add username>
# input your password
exit
5 登陆
# shell login
wandb login --host=http://<your host>:8080 <your api key>
# web site
http://<your host>:8080/home
欢迎大家使用wandb探索更深层次的应用,提升工作效率~