diff --git "a/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" "b/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" index 9e8b130d51f4df6cdcbc973f5d4dd63738f56973..e8896c795d8a4a1d39f78e3850d9d2c79c61c9c3 100644 --- "a/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" +++ "b/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" @@ -5,9 +5,9 @@ - [1.3 环境搭建](#13-环境搭建) - [2 推理指导](#2-推理指导) - [2.1 推理流程](#21-推理流程) - - [2.1.1 pytorch模型导出onnx](#211-pytorch模型导出onnx) - - [2.1.2 onnx模型转om模型](#212-onnx模型转om模型) - - [2.1.3 数据验证集预处理](#213-数据验证集预处理) + - [2.1.1 导出onnx文件](#211-导出onnx文件) + - [2.1.2 转换为om模型](#212-转换为om模型) + - [2.1.3 测试集预处理](#213-测试集预处理) - [2.1.4 离线推理](#214-离线推理) - [2.1.5 精度统计](#215-精度统计) - [2.1.6 性能对比](#216-性能对比) @@ -126,7 +126,7 @@ opencv-python == 4.2.0.34 ### 2.1 推理流程 以EfficientNet-b0为例介绍端到端推理涉及到的所有流程 -#### 2.1.1 pytorch模型导出onnx +#### 2.1.1 导出onnx文件 - 获取pytorch模型代码与权重文件 基于PyTorch框架的EfficientNet模型代码与pth权重文件可以从开源[github网址](https://github.com/lukemelas/EfficientNet-PyTorch)获取 >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) @@ -345,7 +345,7 @@ x = F.adaptive_avg_pool2d(input, output_size=bin_size)替换为x = adaptive_avg_ - 开源detectron2目前仅支持pytorch1.8导出onnx,但是基于detectron2框架ascend 910训练的模型代码依赖华为npu版的pytorch1.5.0,无论cpu,gpu还是npu训练出的权重都是数值,只要保存权重的网络节点结构相同,就可以使用开源的detectron2加载npu训练的权重基于pytorch1.8导出onnx。参见本文3.5 maskrcnn端到端推理指导-detectron2框架npu训练的maskrcnn -#### 2.1.2 onnx模型转换为om模型 +#### 2.1.2 转换为om模型 - 使用Ascend atc工具将onnx转换为om ``` CANN安装目录 @@ -377,7 +377,7 @@ atc --framework=5 --model=efficientnet-b0_sim.onnx --output=efficientnet-b0_bs16 > 9.atc工具的使用可以参考[CANN 5.0.1 开发辅助工具指南 (推理) 01](https://support.huawei.com/enterprise/zh/doc/EDOC1100191944?idPath=23710424%7C251366513%7C22892968%7C251168373) > 10.若模型包含atc不支持的算子,算子问题可以规避的先通过修改模型进行规避,并在modelzoo上提issue或联系华为方 -#### 2.1.3 数据验证集预处理 +#### 2.1.3 测试集预处理 - 参考模型代码仓在验证集上评测精度的推理脚本里的数据预处理代码进行预处理脚本的编写 - 请确保预处理脚本的数据集预处理方法与代码仓评测精度的脚本采用的预处理方法保持一致,通常包括减均值除方差,缩放加pad、中心裁剪,除以255,nhwc转换为nchw,rgb转换为bgr等