百度站长,网站备案 电信,wordpress账号权限,美工培训课程线上任务描述
本周实现并封装了模型的运行#xff0c;需要在前端安装依赖的库#xff0c;编写对应的处理函数。同时需要能够展示出抠图效果。
依赖与环境配置
尝试在前端接入并运行onnx。
在前端运行onnx依赖于onnxruntime-web这个包#xff0c;这个包可以在浏览器进行模型推…任务描述
本周实现并封装了模型的运行需要在前端安装依赖的库编写对应的处理函数。同时需要能够展示出抠图效果。
依赖与环境配置
尝试在前端接入并运行onnx。
在前端运行onnx依赖于onnxruntime-web这个包这个包可以在浏览器进行模型推理。
首先npm install onnxruntim-web
运行模型依赖于wasm文件中的函数所以需要设置一下ort的全局环境。 这里配置的wasmPath是所依赖的wasm的路径。
初始化模型并运行
然后尝试初始化模型 const MODEL_DIR ./interactive_module_quantized_592547_2023_03_19_sam6_long_uncertain.onnx;const URL: string MODEL_DIR;// const URL: string process.env.MODEL_DIR;const model await InferenceSession.create(URL);这里URL是模型的位置使用onnxruntime提供的InferenceSssion.create方法来创建一个model用于此后的推理。
问题与解决
但是这里遇到了一个报错。 看起来是使用wasm编译onnx时报错从网上查找类似问题的解决方案。 这里有人有类似问题通过升级版本解决了这一问题但是目前项目中安装的已经是onnxruntime-web的最新版1.18仍然不能使用。
不过此人的解决思路给了我启发 发现sam-demo中使用的是onnxruntime-web1.14而本地使用的是1.18可能是版本不兼容导致的。
这里将package.json中的版本也降为1.14试一下。
发现还是同样的报错。这里又尝试了很多其他方法还是不行。
最后还是怀疑是版本问题然后npm list看了一下包版本 竟然还是1.18版本但此时package.json中的版本已经改成了1.14。 最后查阅资料得知使用^1.14.0的写法npm会自动安装大版本下的最新小版本所以就会默认装上1.18.应该使用1.14.0的写法。
改写版本号后重启问题解决。
总结
npm竟然会自动跟进相同主版本号的最新次版本号而不是修订号感觉不是很人性化增加了debug难度。
onnxruntime-web竟然在次版本号更新没有做同主版本号的前向兼容逆天。。。。
给自己也提了个醒以后更新版本之后先npm list看一眼真实版本号。