动态shape模型用户输入和模型推导结果不匹配
现象描述
场景1:模型执行报错,日志信息中包含以下关键信息:
[INFO] GE(2284607, ir_build):2021-11-08-19:31:33.920.888 [task_context.cc:257]2284607 AllocateOutput: To allocate output for node: add2. index = 0, tensor desc = [TensorDescl DataType = 6 , Format = 2 · Shape = [50, ] [ERROR] GE(2284607, ir_build):2021-11-08-19:31:33.920.900 [task_context.cc:257]2284607 AllocateOutput: ErrorNo: 50331649() [LOAD][LOAD][Check][Size] add2(Add) index[0] mem size out of range! Expected size: 128, but given input size: 2.
场景2:单算子场景执行报错,日志信息中包含以下关键信息:
[INFO] GE(130191,python):2021-09-27-17:23:17.922.047 [single op.cc:161]131511 ValidateArgs:lnput [1], aligned_size:96, inputs.length:40, input_sizes_:96 [INFO] GE(130191,python):2021-09-27-17:23:17.922.054 [single op.cc:186]131511 ValidateArgs:Output [0], aligned_size:3145760, outputs.length:3145728, input_sizes_:18446744073709551615 [ERROR] GE(130191,python):2021-09-27-17:23:17,922.095 [single op.cc:161]131511 ValidateArgs: ErrorNo: 145000(Parameter invalid.) [FINALI][FlNALl][CheCkl][Param.Outputs]Output Size mismatch. index = 0, model expect 18446744073709551615, but given .... [ERROR] ASCENDCL(130191,python):2021-09-27-17:23:17,922.213 [op_executor.cpp:68]131511 DoExecteAsync: [FINALI][FlNALl][Exec][Op]Execte op failed. ge result = 145000
可能原因
场景1:
此处为模型执行时,校验用户分配的output_buffer大小和模型经过一层层infershape后得到的模型输出的output_buffer大小不匹配。
场景2:
此处为单算子场景执行时,校验用户分配的output_buffer大小和单算子编译时infershape推出的output_size大小不匹配。
解决措施
针对分析的故障可能原因,可以参考下面步骤处理:
针对场景1:
若发生该错误,用户需要检查分配的output_buffer大小是否正确,应该与模型推导的大小保持一致。建议用户分配的output_buffer按照上报的ERROR中提示的大小进行分配。
针对场景2:
若发生该错误,用户需检查分配的output_buffer大小和算子infershape提示的size大小是否一致,建议按照报错提示的大小进行分配。
父主题: 模型推理问题