昇腾社区首页
中文
注册

模型可视化

对于原始模型文件(.pb、.onnx、.prototxt)或转换成功的.om模型文件,可以在MindStudio界面呈现其网络拓扑结构,并可以查看模型所使用的算子。下文中以.om模型文件为例展示模型可视化功能。

操作步骤

  1. 依次单击菜单栏Ascend > Model Visualizer,或在工具栏选择,在弹出窗口中选择要可视化的模型,例如此处的resnet50模型文件。
    • 在Linux环境上使用模型可视化功能时,如图1所示。
      图1 选择要打开的模型(Linux)
    • 在Windows环境上使用模型可视化功能时,如图2所示。
      图2 选择要打开的模型(Windows)

      查看.prototxt模型文件时,需要保证.prototxt模型文件与其相关的.caffemodel权重文件在同一目录下。

  2. 鼠标左键双击resnet50.om模型文件或者单击“OK”,打开模型可视化界面。
    • 图3为模型可视化优化前的排版和结构。
      图3 模型可视化界面(优化前)
    • 图4为模型可视化优化后的排版和结构。
      图4 模型可视化界面(优化后)
      以root用户安装node.js工具和dagre-d3插件后,可以优化模型可视化的排版布局效果,使整个网络拓扑结构更加清晰有条理,安装方式如下所示:
      • 安装node.js工具
        • ubuntu操作系统:apt install nodejs
        • CentOS、EulerOS和麒麟OS:
          1. 如在官网下载软件包。

            例如,下载node-v8.10.0-linux-arm64.tar.gz

          2. 解压软件包。
          3. 配置环境变量:export NODE_HOME=<软件包解压目录>export PATH=<软件包解压目录>/bin:$PATH
      • 安装dagre-d3插件
        • npm install dagre-d3 -g
        • 配置环境变量:export NODE_PATH=<软件包安装目录>

可视化界面说明

  • 查看算子信息

    图4区域1中展示了模型文件中所有的算子,单击某层算子,该层算子会出现绿色选中框,区域3会展示该算子的详细信息,包括算子名称、算子输入、输出等信息。单击区域2中的图标,将展开算子的所有参数信息,用户也可以逐层单击相关参数左侧的展开按钮,查看参数的详细信息;单击折叠所有的算子信息。

    区域2会展示该网络模型的整体结构,包括区域3中展示的算子在整体网络结构中的位置,即图中的蓝色框选择位置。下拉区域1,区域2中的蓝区选择框随之往下移动。区域1展示框放大和缩小,区域2蓝色框随之缩小和放大。

    • 上/下滑动鼠标滚轮,可以控制模型可视化区域的上/下移动。
    • 按住Ctrl键+上下滑动鼠标滚轮,可以实现模型可视化区域的放大/缩小。
  • 查看算子输出维度和shape信息

    图4区域1中还展示了每一层算子输出的维度和shape信息,如每一层算子连接线中间的1,224,224,4等shape信息,将鼠标移至某个shape上面,在其上面会显示算子输出的维度信息,例如NCHW以及NC1HWC0等维度。

  • 搜索算子

    图4区域4中的“Find”输入框中输入算子名称,下方搜索区域会列出相关的算子。选择其中一个算子,区域1中的网络拓扑结构中相应算子会显示绿色选中框,区域3会展示该算子的详细信息。如图5所示。

    图5 模型可视化界面的搜索功能
  • 搜索算子内部信息

    选区域1中某层算子,单击区域3中的展开按钮,将会展示该层所包括的所有算子的信息,单击区域3上方的或在该区域中使用“Ctrl+F”快捷键,弹出图6所示搜索界面。

    用户在输入框中输入想要查询的信息,比如算子的输入输出、属性等信息,然后在图6界面中勾选搜索特性,单击“Find”进行查找,如果匹配到相关信息,则右侧区域框中相关信息会高亮显示,否则会提示“Value not found”。单击Close退出搜索。

    图6 搜索算子内部信息

    参数解释:

    • Case sensitive:大小写敏感。
    • Wrap Search:循环搜索。
    • Backward:反向搜索。
  • 查看模型输出节点信息
    由于模型转换时Select了名称为res2a_branch2abn2a_branch2ascale2a_branch2ares2a_branch2a_relu的算子,则在.om模型文件可以看到Select算子的输出直接作为模型的输出,如图7中标记红色的信息,用户可以单击相应的TransData算子,查看相应的输入信息。
    图7 Select算子前后区别
  • 查看模型输出节点的数据类型

    如果模型转换时设置了Select节点的输出类型,对应执行转换章节“Model Information”页签中Output Nodes区域下方节点的Data Type类型,模型转换完毕,用户可以单击NetOutput节点,查看不同输入节点的数据类型。

    如果模型转换时只设置了“Model Information”页签中的“Output Type”参数取值,没有Select节点,则模型转换完毕,单击NetOutput节点,查看输入数据类型即可。

    dtype为DT_FLOAT,表示数据类型为FP32,dtype为DT_FLOAT16表示数据类型为FP16,dtype为DT_UINT8表示数据类型为UINT8。

    图8 模型输出数据类型查看