TensorFlow.js加载MobileNetV2 Keras模型失败问题求助
解决方案:Node.js环境下TensorFlow.js加载本地模型失败
错误根源
你遇到的fetch failed + not implemented... yet...错误,本质是在Node.js环境中误用了浏览器专属的模型加载方式:tf.loadLayersModel依赖浏览器的Fetch API,而Node.js的Fetch实现(如undici)不支持file://协议读取本地文件。
修复步骤
安装Node.js专属TensorFlow.js包
若之前安装的是基础版@tensorflow/tfjs,需替换为Node.js专用包:npm install @tensorflow/tfjs-node # 若有CUDA环境,可安装GPU加速版本 npm install @tensorflow/tfjs-node-gpu使用Node专属加载函数
替换tf.loadLayersModel为tf.node.loadLayersModel,并使用正确的本地文件路径格式:const tf = require('@tensorflow/tfjs-node'); async function predict(){ // 支持file://前缀或直接用相对/绝对路径 const model = await tf.node.loadLayersModel('file://./model.json'); console.log('模型加载成功'); } // 捕获错误便于调试 predict().catch(err => console.error('加载失败:', err));验证模型文件完整性
确保tfjs.converters.save_keras_model生成的所有文件都在指定目录下:model.json(模型结构文件)- 多个
groupX-shardYofZ.bin(权重分片文件)
额外说明
你测试的简单模型也触发相同错误,完全是加载方式问题,和模型结构无关。若使用相对路径,需确保脚本执行的当前工作目录与模型文件所在目录一致,或直接使用绝对路径避免路径歧义。
内容的提问来源于stack exchange,提问作者CAFEBABE
相关产品推荐
相关产品推荐

