TAO v5.5.0

TAO WandB 集成

TAO 中的以下网络与 Weights & Biases 接口,以帮助您持续迭代、可视化和跟踪多个训练实验,并将有意义的见解编译到训练用例中。

  1. DetectNet-v2

  2. FasterRCNN

  3. 图像分类 - TF2

  4. RetinaNet

  5. YOLOv4/YOLOv4-Tiny

  6. YOLOv3

  7. SSD

  8. DSSD

  9. EfficientDet - TF2

  10. MaskRCNN

  11. UNet

  12. 数据分析

在 TAO 4.0.1 中,Weights & Biases 可视化套件与 TensorBoard 中渲染的数据同步。因此,要查看在 weights and biases 服务器上渲染的数据,您需要启用 TensorBoard 可视化。该集成还包括在训练运行失败时通过 Slack 或电子邮件向您发送警报的功能。

注意

启用 MLOPS 集成需要您安装 TensorBoard。

以下是为 TAO 设置 Weights & Biases 所涉及的广泛步骤

  1. 设置 Weights & Biases 帐户

  2. 获取 Weights & Biases API 密钥

  3. 登录到 Weights & Biases

  4. 为 Weights & Biases 实验设置可配置数据

设置 Weights & Biases 帐户

Weights & Biases 网站 注册免费帐户,然后登录您的帐户。

wandb_login.png

Wandb 登录屏幕

获取 Weights & Biases API 密钥

登录到您的 Weights & Biases 帐户后,在此处找到您的 API 密钥 here

wandb_credentials.png

Wandb 凭据页面

安装 wandb 库

在您的本地机器上的 Python3 环境中安装 wandb 库。

复制
已复制!
            

python3 -m pip install wandb

登录到 TAO 容器中的 wandb 客户端

为了传递来自本地计算单元的数据并在 Weights & Biases 服务器仪表板上渲染数据,TAO 容器中的 wandb 客户端必须登录并与您的个人资料同步。 要在容器登录中包含 wandb 客户端,请在 TAO 容器中设置环境变量 WANDB_API_KEY,并使用您在设置 Weights & Biases 帐户时收到的 API 密钥。

要通过 TAO 启动器设置环境变量,请使用下面的示例 JSON 文件作为参考,并将 ~/.tao_mounts.json 文件的 Envs 元素下的 value 字段替换为您的 API 密钥。

警告

Weights and biases 需要访问容器中的 /config 目录。 因此,您将需要使用 root 访问权限实例化容器。 请务必取消设置 ~/.tao_mounts.json 文件中 DockerOptions 设置下的 user 字段。

复制
已复制!
            

{ "Mounts": [ { "source": "/path/to/your/data", "destination": "/workspace/tao-experiments/data" }, { "source": "/path/to/your/local/results", "destination": "/workspace/tao-experiments/results" }, { "source": "/path/to/config/files", "destination": "/workspace/tao-experiments/specs" } ], "Envs": [ { "variable": "WANDB_API_KEY", "value": "<api_key_value_from_wandb>" } ], "DockerOptions": { "shm_size": "16G", "ulimits": { "memlock": -1, "stack": 67108864 }, "ports": { "8888": 8888 } } }

注意

当直接从 TAO 容器运行网络时,请使用 docker 命令的 -e 标志。 例如,要通过容器直接使用 Weights & Biases 运行 detectnet_v2,请使用以下代码。

复制
已复制!
            

docker run -it --rm --gpus all \ -v /path/in/host:/path/in/docker \ -e WANDB_API_KEY=<api_key_value> nvcr.io/nvidia/tao/tao-toolkit:5.0.0-tf1.15.5 \ detectnet_v2 train -e /path/to/experiment/spec.txt \ -r /path/to/results/dir \ -k $KEY --gpus 4

TAO 提供了以下选项来配置 wandb 客户端

  1. project:一个字符串,包含实验数据上传到的项目名称

  2. entity:一个字符串,包含在其中创建项目的实体(组)的名称

  3. tags:一个字符串列表,可用于标记实验

  4. notes:实验的简短描述

  5. name:实验的名称。 为了保持每次运行的名称唯一,TAO 会在名称字符串后附加一个时间戳,指示实验运行的创建时间。

根据网络遵循的模式,添加到网络的 spec 文件片段可能略有不同。

对于 DetectNet_v2、UNet、FasterRCNN、YOLOv3/YOLOv4/YOLOv4-Tiny、RetinaNet、SSD/DSSD、MaskRCNN 和 UNet,请在网络的 training_config 配置元素下添加以下代码段。

复制
已复制!
            

visualizer{ enabled: true wandb_config{ project: "name_of_project" entity: "name_of_entity" tags: "training" tags: "tao_toolkit" name: "training_experiment_name" notes: "short description of experiment" } }

对于 MaskRCNN,请在网络的训练配置中添加以下代码段

复制
已复制!
            

wandb_config{ project: "name_of_project" entity: "name_of_entity" tags: "training" tags: "tao_toolkit" name: "training_experiment_name" notes: "short description of experiment" }

对于 EfficientDet-TF2 和 Classification-TF2,请在 train.yaml 文件中 train 配置元素下添加以下代码段。

复制
已复制!
            

wandb: entity: "name_of_entity" name: "name_of_the_experiment" project: "name_of_the_project"

以下是 DetectNet_v2 成功可视化运行的示例图像。

rich_media_images1.png

显示中间推理图像的图像,其中包含在使用 DBScan 或 NMS 进行聚类之前的边界框

system_utilization1.png

显示系统利用率图的图像。

experiment_config.png

给定实验的配置已保存以供记录。

metric_plots1.png

训练期间绘制的指标

logging1.png

来自运行训练的本地机器的流式日志。

histograms1.png

训练模型的权重直方图。

上一页 TAO MLOPS 集成
下一页 TAO Clearml 集成
© 版权所有 2024, NVIDIA。 上次更新时间:2024 年 10 月 15 日。