diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" index 1721d7e22070aec2ddc6e0db0c9118b1fdc6b212..1438bd4bf0ce5269806214e5270a3eb817a28a50 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" @@ -29,16 +29,21 @@ ### 1.1 原理与方案 -- 精度性能要求 - - Ascend PyTorch模型离线推理目标是pytorch模型在npu Ascend 310卡上离线推理的精度与gpu T4卡上推理精度一致,推理性能超过T4。 +- Ascend PyTorch模型离线推理迁移 + +基于开源PyTorch框架的开源模型代码加载npu 910训练的pth权重,在npu 310上进行离线推理,要求精度与pth权重精度一致,性能超越gpu t4 +![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/images/Ascend_PyTorch_offlineinfer_migrate.png) - Ascend PyTorch模型离线推理流程 - 首先在github上找到PyTorch实现的引用多包含预训练的模型代码仓,参考代码仓预处理模型加载的代码加载pth并转换为onnx模型,再由onnx模型转换为om模型,参考代码仓预训练模型数据预处理代码对用来评价模型精度的数据集进行预处理,使用昇腾benchmark工具执行om模型的离线推理,最后参考代码仓数据后处理代码进行后处理,统计出om模型的推理精度。使用benchmark工具测试om推理性能,对性能不达标的om模型,使用profiling工具分析,通过模型调优,算子开发与算子融合等方法实现达标 - - Ascend PyTorch模型离线推理流程: -![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/figures/pyotrch_offline_infer.png) +首先在github上找到开源PyTorch框架实现的引用多包含预训练的模型代码仓,参考开源模型加载预训练模型的代码加载开源pth权重文件在cpu上导出onnx模型文件,优先使用910训练好的pth权重文件,如果使用910权重需要把训练适配的影响精度的代码移植到开源模型代码。 +然后在装有310卡与CANN软件的服务器环境使用Ascend atc模型转换工具将onnx模型转换为om模型文件。 +参考开源模型代码数据测试集预处理方法进行预处理。 +在310服务器上使用Ascend benchmark工具执行om模型的离线推理。 +参考开源模型代码数据后处理部分对om模型输出进行后处理,统计出精度。 +最后Ascend benchmark工具也会测试出om模型推理性能,对性能不达标的om模型,使用Ascend profiling工具分析并进行调优。 + +![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/images/Ascend_PyTorch_offlineinfer_process.png) ### 1.2 环境搭建与说明