TAO Clearml 集成
TAO 中的以下网络与 ClearML 接口,让您可以持续迭代、可视化和跟踪多个训练实验,并将有意义的见解编译到训练用例中。
DetectNet-v2
FasterRCNN
图像分类 - TF2
RetinaNet
YOLOv4/YOLOv4-Tiny
YOLOv3
SSD
DSSD
EfficientDet - TF2
MaskRCNN
UNet
在 TAO 4.0.1 中,ClearML 可视化套件与 TensorBoard 中渲染的数据同步。因此,要在 ClearML 服务器上查看渲染数据,您需要启用 TensorBoard 可视化。集成还包括在训练运行失败时通过 Slack 或电子邮件向您发送警报的功能。
启用 MLOPS 集成不需要您安装 TensorBoard。
以下是为 TAO 设置 ClearML 所涉及的广泛步骤
设置 ClearML 帐户
获取 ClearML 凭据
登录 ClearML 客户端
设置 ClearML 实验的可配置数据
设置 ClearML 帐户
在 ClearML 网站 注册免费帐户,然后登录您的 ClearML 帐户。
获取 ClearML API 凭据
登录您的 ClearML 帐户后,通过导航到此 窗口 右上角的设置窗格,然后单击生成新凭据来生成新凭据。
NVIDIA 建议以环境变量的形式获取凭据,以最大限度地提高易用性。您可以通过单击 Jupyter Notebook
选项卡并复制 env 变量来获取这些变量。

设置/工作区下凭据的 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 客户端
project
:一个字符串,包含实验数据上传到的项目名称tags
:一个字符串列表,可用于标记实验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 成功可视化运行的示例图像。

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

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

训练期间绘制的指标

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

训练模型的权重直方图。