You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android平台使用ONNXRuntime出现AssignNodesToEpsFromHashesImpl报错如何解决?

ONNXRuntime Android MaxPool算子内核缺失问题解决方案

AssignNodesToEpsFromHashesImpl Failed to find kernel def hash (8090321298879394920) in kernel registries for MaxPool(8) node with name 'layer3/pool_3/MaxPool'

该报错本质为当前ONNXRuntime运行环境缺少对应Opset版本、对应参数配置的MaxPool算子内核实现,可按以下步骤排查解决:

  • 升级ONNXRuntime Android依赖版本
    如果你是通过gradle官方源引入依赖,优先升级到最新稳定版即可覆盖绝大多数常用算子实现,依赖配置参考:
    implementation 'com.microsoft.onnxruntime:onnxruntime-android:1.16.3'
    
    注意不要使用裁剪过的onnxruntime-mobile包,除非你确认裁剪包包含了你需要的所有算子。
  • 调整模型导出的Opset版本
    报错中MaxPool(8)表示该节点使用的是ONNX Opset 8版本的MaxPool定义,如果你需要保留当前ONNXRuntime版本,可在导出ONNX模型时调整Opset版本到当前运行环境支持的范围。比如使用PyTorch导出模型时显式指定适配性更广的版本:
    torch.onnx.export(model, input, "model.onnx", opset_version=11)
    
    ONNXRuntime 1.7及以上版本均完整支持Opset 11版本的MaxPool算子。
  • 验证执行提供者配置
    如果你启用了NNAPI、GPU等非CPU执行提供者,可能存在对应后端不支持当前MaxPool参数配置的问题。可以先切换到默认CPU执行提供者测试是否能正常创建会话,如果CPU后端可以正常运行,再针对对应后端的算子支持列表调整模型配置或者运行参数。
  • 检查自定义编译的算子裁剪规则
    如果你使用的是自行编译的ONNXRuntime Android包,确认编译配置中没有将MaxPool算子从编译列表中移除,同时确认你开启了对应执行后端的算子编译开关。

内容的提问来源于stack exchange,提问作者소문주

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:06:02