深度学习模型包管理工具

本文介绍深度学习模型包管理工具的使用方法和注意事项。

工具介绍

深度学习模型包管理工具是 Mech-Vision 软件提供的管理深度学习模型包的工具,可对 Mech-DLK 2.2.0 及之后版本导出的深度学习模型包(单级模型包或级联模型包)进行优化,并对运行模式、硬件类型、模型效率、模型包状态进行管理。此外,该工具还可以监控工控机的 GPU 使用率。

当工程中使用深度学习相关步骤时,可将模型包先导入到深度学习模型包管理工具,然后在深度学习相关步骤中使用。将模型包提前导入该工具,可提前完成模型包的优化。

注解

自 Mech-DLK 2.4.1 开始,模型包分为单级模型包、级联模型包两种。

  • 单级模型包:模型包中有且只有一个深度学习算法模块的模型,例如“实例分割”模型。

  • 级联模型包:模型包中有多个深度学习算法模块的模型,以串联形式存在,上一模型的输出是下一模型的输入。例如,当模型包中存在“目标检测”、“实例分割”两个模型时,模型推理顺序为 目标检测 ‣ 实例分割 ,“目标检测”模型的输出将作为“实例分割”模型的输入。

界面介绍

该工具可通过以下两种方式打开:

  • 依次单击菜单栏中 深度学习 ‣ 深度学习模型包管理工具

  • 在工程中,选中“深度学习模型包推理”步骤,然后在步骤参数中单击 模型包管理工具 按钮。

下表介绍了深度学习模型包管理工具界面中的各选项字段。

字段名

介绍

缓存模型包名称

可查看导入的模型包名称

使用工程

可查看使用模型包的 Mech-Vision 工程

模型包类型

可查看模型包的类型,如“目标检测”(单级模型包)、“目标检测+缺陷分割”(级联模型包)

运行模式

可选择模型包推理的运行模式,包括“共享模式”和“性能模式”

硬件类型

可查看、更改模型包推理使用的硬件的类型,如 GPU(默认)、GPU(优化)、CPU

模型效率

可对模型包推理效率进行配置

模型包状态

可查看模型包的状态,如“优化中”、“就绪” 、“优化失败”

注解

运行模式

  • 共享模式:选择该选项后,多个步骤使用同一模型包时,将排队推理,可节省更多运行资源。

  • 性能模式:选择该选项后,多个步骤使用同一模型包时,将并行推理,可提高运行速度,但会消耗更多运行资源。

硬件类型

  • CPU:使用 CPU 进行模型包推理,与 GPU 相比,推理时间会增加,并且识别精度会有所降低。

  • GPU(默认):选择该选项后,无需根据硬件设备对模型包进行优化,模型包推理将不会被提速。

  • GPU(优化):选择该选项后,将根据硬件设备对模型包进行优化,此过程仅需一次,预计耗时 5~15 分钟,优化后的模型包推理时间将缩短。

操作指南

本节介绍深度学习模型包管理工具的常用操作。

导入深度学习模型包

  1. 打开深度学习模型包管理工具,在其界面左上角处单击 导入模型包

  2. 在弹出的文件选择窗口中选中想要导入的模型包,然后单击打开,该模型包即可出现在深度学习模型包管理工具的列表中,此时即完成了深度学习模型包的导入。

注意

导入深度学习模型包时,GPU 驱动的最低版本要求为 472.50(不建议使用 500 以上版本的 GPU 驱动,可能导致深度学习步骤运行时间存在波动),CPU 的最低要求为英特尔第 6 代 Core。当硬件条件不满足时将出现深度学习模型包导入失败的情况。

在深度学习步骤中选择深度学习模型包

深度学习模型包导入完成后,如需在“深度学习模型包推理”步骤中选择深度学习模型包,可在其参数中的 模型包名称 下拉栏中选择已导入的模型包,用于模型包推理。

../../../_images/step_select_model.png

注销深度学习模型包

如需注销已导入的深度学习模型包,需先选中该模型包,然后单击深度学习模型包管理工具右上角的 注销模型包 按钮,即可注销该深度学习模型包。

../../../_images/log_out_model.png

注意

当深度学习模型包处于 优化中正在使用 (使用该深度学习模型包的工程正在运行)时,该深度学习模型包不能被注销。

切换深度学习模型包推理的运行模式

如需切换深度学习模型包推理的运行模式,可在深度学习模型包管理工具的 运行模式 字段下单击 icon_1 按钮,然后选择 共享模式性能模式

../../../_images/select_operating_mode.png

注意

  • 当模型包的优化状态为 优化中正在使用 (使用该模型包的工程正在运行)时,无法切换 运行模式

  • 当模型包的运行模式为 共享模式 时,无法在 深度学习模型包推理 步骤参数中切换 GPU ID

切换深度学习模型包推理的硬件类型

深度学习模型包推理的硬件类型可切换至 GPU(默认)、GPU(优化)或 CPU。

在深度学习模型包管理工具的 硬件类型 字段下单击 icon_1 按钮,然后选择 GPU(默认)GPU(优化) 或 CPU。

../../../_images/select_hardware_type.png

注意

  • 仅 Mech-DLK 2.4.1 及之后版本导出的模型包支持 CPU、GPU 的切换。

  • 下列导入的模型包不支持使用 GPU(默认) 硬件类型:

    • Mech-DLK 2.2.0 导出的实例分割以及实例分割超级模型包。

    • Mech-DLK 导出的仅包含 .dlkmt 文件的模型包。

  • 当模型包的优化状态为 优化中正在使用 (使用该模型包的工程正在运行)时,无法切换 硬件类型

配置模型效率

当使用 Mech-DLK 2.4.1 及之后版本导出的模型包时,可配置模型效率,方法如下。

  1. 导入深度学习模型包。

  2. 单击“模型效率”下方的 配置 按钮,弹出模型效率配置窗口,对“批量大小”和“精度”进行配置。

    模型运行效率受“批量大小”和“精度”参数影响。

    • 批量大小:模型推理时,一次性送入神经网络的图像数量,范围为 1~128。增大该值可以加快模型推理速度,但会占用较多显存。当该值设置不合理时,将导致推理速度变慢。实例分割模型不支持设置“批量大小”,“批量大小”必须为 1。

    • 精度(仅“硬件类型”为“GPU 优化”时可开启):FP32:模型精度高,推理速度较慢;FP16:模型精度低,推理速度较快。

提示

建议“批量大小”的取值与实际送入神经网络的图像数量保持一致。

当设置的“批量大小”远大于实际送入神经网络的图像数量时,将浪费部分资源,导致推理速度变慢。

例如:图像数量为 26,“批量大小”设置为 20,此时将分两次进行推理,第一次送入 20 张图像至神经网络,第二次送入 6 张图像至神经网络。第二次推理时,设置的“批量大小”远大于实际送入神经网络的图像数量,浪费了部分资源,将导致推理速度变慢。所以,请合理设置“批量大小”,以确保资源的合理使用。

注意事项

深度学习模型包导入失败

  • 当已导入模型包,再导入名称相同的模型包时,需 修改模型包名称注销同名模型包 ,再进行导入。

    ../../../_images/model_name_1.png
  • 当重复导入了内容相同的模型包时,将提示 深度学习模型包导入失败

    ../../../_images/model_name_2.png
  • 当软件、硬件条件不满足时,将导致模型包导入失败。GPU 驱动的最低版本要求为 472.50,CPU 的最低要求为英特尔第 6 代 Core。当 GPU 驱动版本为 500 以上时,模型包推理时间存在波动。

深度学习模型包优化失败

当显存不足时,可能导致模型包优化失败,如下图所示。可按照提示窗口的解决办法来解决该问题。

../../../_images/load_model_fail_1.png

注意

对于级联模型包,若其中任一模型优化失败,则级联模型包整体优化失败,需重新进行模型包优化。

兼容性说明

  • Mech-Vision 1.7.1 可使用 Mech-DLK 2.4.1 及以上版本导出的深度学习模型包,但会存在以下兼容性问题。建议 Mech-Vision 1.7.2 及以上版本与 Mech-DLK 2.4.1 及更高版本导出的深度学习模型包配合使用。

    • Mech-Vision 无法使用级联模型包;

    • 无法调整模型效率;

    • 图像分类效果可能变差;

    • 模型包无法在 CPU 设备上使用。

  • 如果在 Mech-Vision 1.7.2 中使用 Mech-Vision 1.7.1 优化过的模型包,模型包在“深度学习模型包推理”步骤中首次运行时速度较慢。

  • 当 Mech-DLK 2.4.1 导出的目标检测模型包的“推理时最大实例个数”为 1,且深度学习模型包管理工具的硬件类型为 CPU 时,模型包推理速度将会变得很慢,建议“推理时最大实例个数”大于 1。