通过wx.createInferenceSession()接口加载onnx模型,创建session失败
从tensorflow.js 的movenet转换到onnx的模型,加载时提示错误。
{"errMsg":"createInferenceSession:fail create session fail : xnet error:6: Failed to convert ONNX model to XNet modelFailed to convet onnx to xnet\n","errno":2004001}
模型图如下:
加载模型初始化代码如下:
_loadModel(modelPath) {
if (!modelPath) {
console.error('model path is null!')
}
let modelFile = modelPath
return new Promise((resolve, reject) => {
this.wxInferenceSession = wx.createInferenceSession({
model: modelFile ,
// precisionLevel: 4,
// allowNPU: true,
// allowQuantize: false,
typicalShape: {input:[1,256,256,3]}
})
// 监听error事件
this.wxInferenceSession.onError((error) => {
console.error(error)
reject(error)
})
this.wxInferenceSession.onLoad(() => {
this.ready = true
resolve()
})
})
}
看起来是NHWC输入,后面是不是接了Reshape;目前更倾向于使用NCHW格式输入。NHWC后面接reshape/permute 会有一些问题
模型链接如下: https://tfhub.dev/google/tfjs-model/movenet/singlepose/thnuder/4
请教在onnx转换过程,有什么方法解决?
或者说在inference组件部分,是否有解决的措施?
PS:验证过其它模型,也存在同类问题。
如果是上面的结构,应该都不是onnx的标准
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/inference/supports.html