模型可视化
对于已经转换成功的.pb模型文件、.onnx模型文件、.prototxt模型文件或.om模型文件,可以在MindStudio界面呈现其网络拓扑结构,并可以查看模型所使用的算子。下文中以.om模型文件为例展示模型可视化功能。
- 依次单击菜单栏 ,或在工具栏选择,在弹出窗口中选择要可视化的模型,例如此处的resnet50模型文件。
- 在Linux上使用模型转换功能时,单击右侧的文件夹图标,选择或直接输入本地服务器上需要转换的模型文件路径。
图1 选择要打开的模型(Linux)
- 在Windows上使用模型转换功能时,在弹出的窗口中单击右侧的文件夹图标,选择“remote path”,在后台服务器路径选择需要转化的模型文件并上传;选择“local path”,单击右侧的文件夹图标,在Windows本地选择或直接输入需要转化的模型文件路径并上传。
图2 选择要打开的模型(Windows)
查看.prototxt模型文件时,需要保证.prototxt模型文件与其相关的.caffemodel权重文件在同一目录下。
- 在Linux上使用模型转换功能时,单击右侧的文件夹图标,选择或直接输入本地服务器上需要转换的模型文件路径。
- 依次选择“resnet50 > Soc_Version”(Soc_Version表示芯片型号) ,选择模型转换中已经转换成功的resnet50.om模型文件,单击“OK”。
- 查看算子信息
图4展示了模型文件中所有的算子,单击某层算子,该层算子会出现绿色选中框,右侧区域会展示该算子的详细信息,包括算子名称、算子输入、输出等信息。单击展开算子的所有参数信息,用户也可以逐层单击相关参数左侧的展开按钮,查看参数的详细信息;单击折叠所有的算子信息。
中间区域会展示该网络模型的整体结构,包括右侧展示框中的算子在整体网络结构中的位置,即图中的蓝色框选择位置。左侧展示区域下拉,右侧整体区域中的蓝区选择框随之往下移动。左侧展示框放大和缩小,右侧蓝色框随之缩小和放大。
- 上/下滑动鼠标滚轮,可以控制模型可视化区域的上/下移动。
- 按住Ctrl键+上下滑动鼠标滚轮,可以实现模型可视化区域的放大/缩小。
- 查看算子输出维度和shape信息
图4还展示了每一层算子输出的维度和shape信息,如每一层算子连接线中间的1,224,224,4等shape信息,将鼠标移至某个shape上面,在其上面会显示算子输出的维度信息,例如NCHW以及NC1HWC0等维度。
- 搜索算子
在图4右侧区域的“Find”右侧的输入框中输入算子名称,下方搜索区域会列出相关的算子。选择其中一个算子,左侧网络拓扑结构中相应算子会显示绿色选中框,右上方会展示该算子的详细信息,包括算子名称、算子输入、输出等信息。如图5所示。
- 搜索算子内部信息
选中某层算子,单击右上方的展开按钮,右侧区域框会展示该层所包括所有算子的信息,单击或在右侧区域使用“Ctrl+F”快捷键,弹出图6所示搜索界面,其中:
- Case sensitive:大小写敏感。
- Wrap Search:循环搜索。
- Backward:反向搜索。
用户在输入框中输入想要查询的信息,比如算子的输入输出、属性等信息,然后在图6界面中勾选搜索特性,单击“Find”进行查找,如果匹配到相关信息,则右侧区域框中相关信息会高亮显示,否则会提示“Value not found”。单击Close退出搜索。
- 查看模型输出节点信息
由于模型转换时Select了名称为res2a_branch2a、bn2a_branch2a、scale2a_branch2a、res2a_branch2a_relu的算子,则在.om模型文件可以看到Select算子的输出直接作为模型的输出,如图7中标记红色的信息,用户可以单击相应的TransData算子,查看相应的输入信息。
- 查看模型输出节点的数据类型
如果模型转换时设置了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 模型输出数据类型查看
- 查看算子信息