网络模型优劣选择分析样例

背景介绍

以Ghostnet网络模型为例,Ghostnet网络模型宣称为轻量化网络模型,在网络应用推理效率上高于传统卷积的网络模型。因此使用Profiling性能分析工具对网络应用执行推理耗时分析,分析结果显示推理耗时数值较高。通过对该模型的卷积操作进行分析,发现Ghostnet网络模型的Conv操作进行了多次拆分整合,该操作严重影响了运行效率,并不如普通网络模型的推理效率高。如图1所示。

图1 Ghostnet网络与传统卷积的网络模型的卷积操作对比

得出结论:Ghostnet网络模型不是优选的网络模型。

Profiling性能分析操作

  1. 启动MindStudio,单击选择并打开已编译完成的工程。
  2. 单击菜单栏Ascend > System Profiler > New Project,弹出Profiling配置窗口 。
  3. 进入Profiling配置窗口,如图2。配置Profiling的工程名称“Project Name”和选择Profiling工程的结果路径“Project Location”。单击“Next”进入下一步。

    图2 Project Properties配置

  4. 进入“Executable Properties”配置界面,选择Local Run模式。指定执行Profiling目标工程的可执行文件目录。如图3所示。

    图3 Local Run

  5. 进入“Profiling Options”配置界面,选择Task-based场景。如图4所示。

    图4 Task-based场景

  6. 完成上述配置后单击窗口右下角的“Start”按钮,启动Profiling。

    工程执行完成后,MindStudio窗口下方自动展示Profiling结果视图。单击Timeline视图下方数据窗格的Statistics视图中aclmdlExecute接口体现网络整体运行时间达到了66352.469us,单击AI Core Metrics视图,查看AI Core Metrics数据中Ghostnet网络模型中执行了大量的Concat操作,并且运行耗时均较长。如图5图6所示。

    图5 Ghostnet网络应用推理运行结果_Statistics
    图6 Ghostnet网络应用推理运行结果_AI Core Metrics

问题分析

根据图6所示的结果,Ghostnet网络模型因为执行了大量的Concat操作导致了整体的运行时间较高。

问题解决

使用普通网络模型重新执行Profiling性能分析操作得到新的结果Statistics视图中aclmdlExecute接口体现网络整体运行时间只有14202.312us。如图7所示。

图7 普通网络模型运行结果

结论

通过Profiling性能分析工具前后两次对网络应用推理的运行时间进行分析,并对比两次执行时间可以得出结论,Ghostnet网络应推理效率并不比传统卷积的网络应用推理效率高,可以不作为优先选择的网络模型。