Paddle.js
Paddle.js copied to clipboard
paddlejs无法加载经paddlejs-converter转换的infer model
步骤:
- 从https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.6/EISeg/docs/image.md页下载static_hrnet18_ocr64_cocolvis模型
- 使用paddlejs-converter转换下载的模型,成功生成model.json以及相关.dat文件
- 修改paddlejs-model/ocr/src/index.ts重的引用模型地址为上步骤生成的模型
- 在paddlejs-examples/ocr项目下引用上步骤修改的paddlejs-model/ocr
- 本地调试paddlejs-examples/ocr,页面资源加载正常,但是console报错
index.js:1 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'reduce')
at index.js:1:5394
at index.js:1:1583
at Array.forEach (
) at h (index.js:1:1544) at t.allocateParamsVar (index.js:1:5377) at index.js:1:4315
代码定位在:paddlejs-core/src/loader.ts:134 static allocateParamsVar(vars, allChunksData: Float32Array | ParamObject) { let marker = 0; // 读到哪个位置了 let len; // 当前op长度 const chunkData: number[] = Array.isArray(allChunksData) ? allChunksData : Object.values(allChunksData); traverseVars(vars, item => { 134: len = item.shape.reduce((a, b) => a * b); // 长度为shape的乘积 // 为了减少模型体积,模型转换工具不会导出非persistable的数据,这里只需要读取persistable的数据 if (item.persistable) { item.data = chunkData.slice(marker, marker + len); marker += len; } }); }