在模型调测时遇到如MaxPoolGradWithArgmaxV1算子和max算子报错
- 报错文本
…… RuntimeError: execute_npu_operate:/home/***/temp/pytorch/aten/src/ATen/native/npu/utils/CalcuOpUtil.cpp:726 NPU error, NPU error code is:500000 (execute_npu_operate at /home/***/temp/pytorch/aten/src/ATen/native/npu/utils/CalcuOpUtil.cpp:726) ……
问题分析
在模型搭建中,算子输入参数是多样的。某些算子(如MaxPoolGradWithArgmaxV1算子和max算子)在特定参数下,计算报错或者不支持,根据报错信息可以定位到具体算子。
处理方法
根据报错信息定位到具体算子,解决步骤如下。
- 排查模型中对该算子的调用方式和参数是否正确。
- 根据报错算子构建单算子用例,构建报错场景。
- 一般算子错误无法在Python侧解决,构建出报错场景。请附上报错场景,求助华为工程师。
- 输入参数shape和dtype需要重点关注,一般是导致算子报错的主要原因。
- 前述图中,根据报错信息,定位到是MaxPoolGradWithArgmaxV1算子和max算子报错。MaxPoolGradWithArgmaxV1是在反向计算过程中报错,那么构建测试用例时需要构建对应的反向场景,而对于max算子,是正向计算时报错,构建正向场景即可。
- 在模型计算中遇到算子报错,首选是仅构建单算子测试用例,确定报错场景和原因即可,若无法在单算子中构建单算子用例,则需要构建基于上下文的单算子场景。
父主题: 模型调优相关问题