Wandb:深度神经网络可视化工具介绍及本地部署方式

为大家分享一款目前个人觉得操作非常简单,但是性能强大的一款深度学习网络可视化的插件。如果习惯于使用TensorBoard的同学应该会很快爱上它。支持多个深度学习网络框架(包括Hugging Face~)

Wandb:深度神经网络可视化工具介绍及本地部署方式_第1张图片

Wandb的功能:

  • 调参:存储训练参数,自动分析参数关联,助力快速调参

Wandb:深度神经网络可视化工具介绍及本地部署方式_第2张图片

  • 看板:同步本地实验结果,并进行实时可视化展示

Wandb:深度神经网络可视化工具介绍及本地部署方式_第3张图片

  • 报告:结果自动同步云端,永久记录实验的过程,可用于模型改进探索及团队分享

Wandb:深度神经网络可视化工具介绍及本地部署方式_第4张图片

  • 自动记录CPU、GPU等系统硬件利用情况

Wandb:深度神经网络可视化工具介绍及本地部署方式_第5张图片

  • 自动记录控制台打印的训练日志,以及环境依赖等参数项

Wandb:深度神经网络可视化工具介绍及本地部署方式_第6张图片

以上的所有内容,只需几行代码就能实现

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) :可以为我们监视模型各个模块的梯度变化,例如:

Wandb:深度神经网络可视化工具介绍及本地部署方式_第7张图片

如何本地部署?

1 拉取wandb server的docker镜像        

#服务器上需要预先安装Dokcer
docker pull wandb/local

2 在https://deploy.wandb.ai/deploy 页面中申请得到 License

Wandb:深度神经网络可视化工具介绍及本地部署方式_第8张图片

3 启动

sudo docker run --rm -d -e LOCAL_RESTORE=true -e HOST=http://:8080 -e 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 [email protected]

/usr/local/bin/local password 
# input your password

exit

5 登陆

# shell login
wandb login --host=http://:8080 

# web site
http://:8080/home

欢迎大家使用wandb探索更深层次的应用,提升工作效率~

你可能感兴趣的:(可视化,算法,深度学习,深度学习)