Wandb:模型训练最强辅助

Wandb:模型训练最强辅助

如果说到深度学习中训练数据的记录工具,最先想到应该是TensorBoard(或者TensorBoardX)。不过,相比较TensorBoard而言,Wandb更加的强大,主要体现在以下的几个方面:

  1. 复现模型:Wandb更有利于复现模型。
    这是因为Wandb不仅记录指标,还会记录超参数和代码版本。
  2. 自动上传云端:
    如果你把项目交给同事或者要去度假,Wandb可以让你便捷地查看你制作的所有模型,你就不必花费大量时间来重新运行旧实验。
  3. 快速、灵活的集成:
    只需5分钟即可把Wandb加到自己的项目。
    下载Wandb免费的开源Python包,然后在代码中插入几行,以后你每次运行模型都会得到记录完备的指标和记录。
  4. 集中式指示板:
    Wandb提供同样的集中式指示板。不管在哪里训练模型,不管是在本地机器、实验室集群还是在云端实例;
    这样就不必花时间从别的机器上复制TensorBoard文件。
  5. 强大的表格:
    对不同模型的结果进行搜索、筛选、分类和分组。
    可以轻而易举地查看成千上万个模型版本,并找到不同任务的最佳模型。
    而TensorBoard本身不适合大型项目。

1 Wandb

1.1 功能

  • 保存训练运行中使用的超参数
  • 搜索、比较和可视化训练的运行
  • 在运行的同时分析系统硬件的情况如:CPU和GPU使用率
  • 在团队中分享训练数据
  • 永远保存可用的实验记录

1.2 提供的工具

  • Dashboard:记录实验过程、将结果可视化;
  • Reports:保存和分享可复制的成果/结论;


  • Sweeps:通过改变超参数来优化模型;
  • Artifacts:可以自己搭建pipline实现保存储存数据集和模型以及评估结果的流程。

1.3 将会上传哪些内容?Wandb记录的全部数据都保存在本地机器上,位于一个wandb路径,然后同步到云端。(1)自动记录

  • 系统指标:处理器和GPU使用率、网络等。由命令nvidia-smi得出这些指标,这些指标位于运行页“系统”选项卡。
  • 命令行:记录标准输出和标准错误,并显示于运行页“日志”选项卡。
  • git提交:记录最近的git提交,并显示于运行页“概况”选项卡。
  • 文件:requirements.txt文件,以及用于运行项并保存在wandb路径的全部文件,将被上传并显示于运行页“文件”选项卡。

(2)有明确调用才记录 当涉及数据和模型指标时,你可以明确决定要记录哪些东西。

  • 数据集:你必须明确记录图像或其它数据集样本,这样才能保存到权阈。
  • PyTorch梯度:加入wandb.watch(模型),即可在界面中看到权值的梯度直方图。
  • 配置(config):记录超参数、数据集链接以及所使用的架构名称,并作为config的参数,传值方式如下:wandb.init(config=your_config_dictionary)
  • 指标:用wandb.log()记录模型的参数。如果你记录的是训练循环内的指标,如准确率、损失,就可以在界面中看到实时更新的图表。

2 Wandb的五行代码使用法

Wandb 基本接口如下:

wandb.init  在训练脚本开头初始化一个新的运行项;

wandb.config  跟踪超参数;

wandb.log  在训练循环中持续记录变化的指标;

wandb.save  保存运行项相关文件,如模型权值;

wandb.restore  运行指定运行项时,恢复代码状态。

对于Any framework,使用wandb的代码如下:

# Flexible integration for any Python script
import wandb

# 1. Start a W&B run
wandb.init(project='gpt3')

# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01

# Model training here

# 3. Log metrics over time to visualize performance
wandb.log({"loss": loss})

3 Next

接下来,会结合代码分享如何使用Wandb的各个工具。请大家扫码下面二维码,第一时间获取最新更新。

扫码关注

获取更多资讯

AI约读社

发布于 2021-01-06 15:29