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

React中加载TensorFlow模型报错:无法解析模型JSON文件

解决React中TensorFlow.js加载本地模型JSON解析失败的问题

可能的原因及对应解决方案

1. 路径引用错误(最常见)

React项目的public目录是静态资源的根目录,加载时不需要带../public前缀,直接用根路径即可。修改加载代码:

import * as tf from '@tensorflow/tfjs';
let model;

(async () => {
    // 直接从根目录指向模型文件
    model = await tf.loadGraphModel('/model/model.json');
    if(model && model.predict) {
        console.log('Model has predict method');
    }
})();
export default model;

2. Model.json文件格式损坏

虽然旧项目能正常加载,但复制到React的public目录时可能出现文件内容变动或损坏:

  • 直接打开public/model/model.json,检查是否存在JSON语法错误(比如多余逗号、未闭合的引号/括号)
  • 对比旧项目中的原文件,确认内容完全一致

3. 模型权重文件缺失或路径不匹配

检查model.json中引用的权重文件(如group1-shard1ofX.bin)是否和model.json在同一目录下,且文件名、路径与JSON内的描述完全匹配。

4. 异步导出的潜在问题

当前代码直接导出初始为undefined的model变量,后续使用时可能模型还未加载完成。可以改为导出加载函数,确保使用时机正确:

import * as tf from '@tensorflow/tfjs';

export const loadModel = async () => {
    const model = await tf.loadGraphModel('/model/model.json');
    console.log('Model loaded successfully');
    return model;
};

使用示例:

import { loadModel } from './your-model-file-path';

loadModel().then(model => {
    // 在此处调用model.predict等方法
});

5. 开发服务器缓存问题

若之前修改过模型文件,浏览器可能缓存了旧内容:

  • 打开开发者工具(F12),在Network面板勾选「Disable cache」后刷新页面
  • 或直接清除浏览器缓存后重试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:59:58