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

TensorFlow.js在Node.js中loadLayersModel报fetch failed错误求助

解决TensorFlow.js Node.js环境加载本地模型报错问题

错误原因

你在Node.js环境中使用@tensorflow/tfjs的tf.loadLayersModel加载本地模型时,依赖的fetch实现(Node.js v21+内置的undici)不支持file://协议请求,因此抛出TypeError: fetch failed及not implemented... yet...错误。

解决方案

1. 切换到@tensorflow/tfjs-node

@tensorflow/tfjs-node是专为Node.js环境优化的TensorFlow.js版本,它直接通过文件系统API加载本地模型,无需依赖fetch。

先安装依赖:

npm install @tensorflow/tfjs-node

2. 修改代码加载模型

使用tf.node.loadLayersModel替代tf.loadLayersModel,并通过绝对路径确保模型文件可被正确定位:

const tf = require("@tensorflow/tfjs-node");
const path = require("path");

// 生成模型文件的绝对路径,规避相对路径和跨系统路径格式问题
const MODEL_PATH = path.resolve(__dirname, "tfjs_Model", "model.json");

const loadModel = async () => {
    // 使用tfjs-node的专用方法加载本地模型
    const model = await tf.node.loadLayersModel(`file://${MODEL_PATH}`);
    return model;
};

module.exports = loadModel;

备选方案(不更换依赖包)

若必须使用@tensorflow/tfjs,可自定义支持file://协议的fetch实现(比如结合node-fetch、fetch-blob等包),但该方式配置繁琐,远不如直接使用tfjs-node高效。

验证要点

  • 确认tfjs_Model目录下存在model.json及对应的权重文件(如group1-shard1ofX.bin)
  • 检查路径是否正确,path.resolve可自动适配Windows/Linux的路径格式差异

内容的提问来源于stack exchange,提问作者Candar TOZAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:20:15