TAO v5.5.0

TAO Clearml 集成

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

  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

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

注意

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

以下是为 TAO 设置 ClearML 所涉及的广泛步骤

  1. 设置 ClearML 帐户

  2. 获取 ClearML 凭据

  3. 登录 ClearML 客户端

  4. 设置 ClearML 实验的可配置数据

设置 ClearML 帐户

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

获取 ClearML API 凭据

登录您的 ClearML 帐户后,通过导航到此 窗口 右上角的设置窗格,然后单击生成新凭据来生成新凭据。

注意

NVIDIA 建议以环境变量的形式获取凭据,以最大限度地提高易用性。您可以通过单击 Jupyter Notebook 选项卡并复制 env 变量来获取这些变量。

clearml_credentials.png

设置/工作区下凭据的 Jupyter notebook 选项卡

安装 clearml 库

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

复制
已复制!
            

python3 -m pip install clearml

登录 TAO 容器中的 ClearML 客户端

为了传达来自本地计算单元的数据并在 ClearML 服务器仪表板上渲染数据,TAO 容器中的 ClearML 客户端必须登录并与您的个人资料同步。要让容器中的 clearml 客户端登录,请使用您设置 ClearML 帐户时收到的数据设置以下环境变量。

复制
已复制!
            

%env CLEARML_WEB_HOST=https://app.clear.ml %env CLEARML_API_HOST=https://api.clear.ml %env CLEARML_FILES_HOST=https://files.clear.ml %env CLEARML_API_ACCESS_KEY=<API_ACCESS_KEY> %env CLEARML_API_SECRET_KEY=<API_SECRET_KEY>

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

复制
已复制!
            

{ "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": "CLEARML_WEB_HOST", "value": "https://app.clear.ml" }, { "variable": "CLEARML_API_HOST", "value": "https://api.clear.ml" }, { "variable": "CLEARML_FILES_HOST", "value": "https://files.clear.ml" }, { "variable": "CLEARML_API_ACCESS_KEY", "value": "<API_ACCESS_KEY>" }, { "variable": "CLEARML_API_SECRET_KEY", "value": "<API_SECRET_KEY>" } ], "DockerOptions": { "shm_size": "16G", "ulimits": { "memlock": -1, "stack": 67108864 }, "user": "1000:1000", "ports": { "8888": 8888 } } }

注意

直接从 TAO 容器运行网络时,请将 -e 标志与 docker 命令一起使用。例如,要通过容器直接使用 ClearML 运行 detectnet_v2,请使用以下代码。

复制
已复制!
            

docker run -it --rm --gpus all \ -v /path/in/host:/path/in/docker \ -e CLEARML_WEB_HOST="https://app.clear.ml" \ -e CLEARML_API_HOST="https://api.clear.ml" \ -e CLEARML_FILES_HOST="https://files.clear.ml" \ -e CLEARML_API_ACCESS_KEY="<API_ACCESS_KEY>" \ -e CLEARML_API_SECRET_KEY="<API_SECRET_KEY>" \ 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 提供了几个选项来配置 clearml 客户端

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

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

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

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

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

复制
已复制!
            

visualizer{ enabled: true clearml_config{ project: "name_of_project" tags: "training" tags: "tao_toolkit" task: "training_experiment_name" } }

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

复制
已复制!
            

clearml_config{ project: "name_of_project" tags: "training" tags: "tao_toolkit" task: "training_experiment_name" }

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

复制
已复制!
            

clearml: task: "name_of_the_experiment" project: "name_of_the_project"

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

rich_media_images.png

显示在使用 DBScan 或 NMS 聚类之前的带有边界框的中间推理图像的图像

system_utilization.png

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

metric_plots.png

训练期间绘制的指标

logging.png

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

histograms.png

训练模型的权重直方图。

上一篇 TAO WandB 集成
下一篇 将 TAO CV 模型与 Triton 推理服务器集成
© 版权所有 2024, NVIDIA。 上次更新于 2024 年 10 月 15 日。