步骤 #6:在 Base Command 上测试修改后的镜像
修改后的镜像构建完成后,我们现在可以在 Base Command 上运行应用程序测试。为此,请导航回 ngc.nvidia.com,然后从屏幕左侧的 Base Command 菜单中单击作业。

在新页面中,单击创建作业。接下来,按照如下方式填写页面上的信息
从列表中选择您的 ACE。
在表格中选择 dgxa100.80g.1.norm。这指定我们要使用来自 DGX A100 的单个 80GB A100 GPU,该 DGX A100 具有 30 个 CPU 核心和 122GB 的 CPU 内存,这足以满足我们的需求。
现在忽略数据集和工作区输入表。我们将使用容器内的工具生成数据。虽然此方法适合本教程的需求,但实际工作负载的建议路径是创建数据集并将其上传到 LaunchPad。通过将数据集上传到 LaunchPad,它可以与团队成员共享,并在容器中自动挂载,因此每次在 LaunchPad 上运行作业时都不需要重新下载。
在“数据输出”字段中输入
/results
。我们的示例应用程序不需要此字段,但这是一个存储结果的好地方,以便稍后查看和保存以用于实际工作负载。在相应的字段中选择您的容器名称。这将与
nv-launchpad-orgname/sample-image
格式匹配,不包含nvcr.io/
或之前推送镜像时的标签。在相应的字段中选择您推送的标签。
对于命令,复制以下内容
for class in `seq 0 9`; do mkdir -p /images/train/class_${class}; \
mkdir -p /images/val/class_${class}; \
imagine create-images --count 50 /images/train/class_${class} fake_train_ jpg; \
imagine create-images --count 50 /images/val/class_${class} fake_val_ jpg; \
done; \
python3 main.py /images
这将使用 NVIDIA 的 Imageinary 应用程序创建一个虚假图像数据集,该应用程序已安装在我们的自定义镜像中。虚假数据集由 /images/train
和 /images/val
目录中的 10 个不同的图像“类别”组成,每个类别包含 50 个随机图像。创建数据集后,它将训练一个图像分类应用程序 90 个 epoch。
表单的其余部分可以保留默认值。单击表单右上角的启动作业以启动作业。

提交作业后,您将被带到作业页面,您可以在其中查看作业的状态。通过单击您的作业,您将被带到作业状态页面,您可以在其中查看作业详细信息、遥测数据、日志输出、状态等。根据资源可用性,作业可能需要一些时间才能启动。
作业启动后,打开日志选项卡以查看作业日志。日志将首先显示数据集的创建,然后显示训练状态,包括吞吐量、准确率、学习率和损失值。应用程序完成后,您将看到类似于以下的摘要
DLL 2022-03-29 21:29:46.494937 - Summary: train.loss : 39.76681 train.compute_ips : 361.89 img/s train.total_ips : 296.99 img/s train.lr : 0.00010000000000000003 val.top1 : 10.00 % val.top5 : 50.00 % val.loss : 73093182325260.28125 val.compute_ips : 1238.29 img/s val.total_ips : 1231.07 img/s val.compute_latency : 0.20187 s
DLL 2022-03-29 21:29:46.495764 - Summary: train.data_time : 0.18867 s train.compute_time : 0.72340 s val.data_time : 0.00118 s val.compute_latency_at100 : 0.20902 s val.compute_latency_at99 : 0.20631 s val.compute_latency_at95 : 0.20581 s
Experiment ended
正如预期的那样,我们的准确率(请参阅 val.top1
和 val.top5
百分比)非常差,相当于随机猜测一个类别,因为我们的图像是虚假噪声,但这足以演示基本功能。