【问题标题】:Loading keras model into tensorflow.js locally在本地将 keras 模型加载到 tensorflow.js 中
【发布时间】:2020-04-08 08:14:54
【问题描述】:

我想加载已转换为tensorflow.js 兼容格式的keras 模型进行推理。 我的代码是这样的

import * as tf from '@tensorflow/tfjs';
import "regenerator-runtime/runtime.js";
import 'bootstrap/dist/css/bootstrap.css';

const model_path = '/home/user/Desktop/Github/tfjs_model/tfjs/tfjs_model/model.json'; 

async function loadModel(path){
  console.log("Model loading in progress from ".concat(path));
  const model =  await tf.loadLayersModel(path);
  console.log("Model Loaded Successfully");
  return model;
};

const model = loadModel(model_path);

const input = tf.tensor1d([1], [13]);
console.log(model.predict(input));

我收到此错误 Error: Failed to parse model JSON of response from /home/user/Desktop/Github/tfjs_model/tfjs/tfjs_model/model.json'. Please make sure the server is serving valid JSON for this request. 我查看了很多地方(Github 问题,堆栈溢出),但似乎找不到解决方法。如何解决? `

【问题讨论】:

  • 你能分享你的json吗?
  • 我怀疑您的服务器实际上无法提供该文件路径。您能否尝试将model.json 文件复制到您的index.html 所在的位置,然后将model_path 更改为model.json
  • 我将 model_path 更改为 model.json 并保留了 index,html 所在的文件(bin 和 json)。它仍然没有解决。我正在使用 parceljs。我明白了
  • 哦,你正在使用 parceljs。看看这个问题:github.com/tensorflow/tfjs/issues/924你可能需要安装一些插件。
  • 可能是你的路径不对。

标签: javascript tensorflow keras tensorflow.js tensorflowjs-converter


【解决方案1】:

我也有这个问题。

使用 const model = await tf.loadLayersModel('directory/model.json'); 会产生与您相同的错误。我尝试更改导入以查找文件 model2.json,该文件不存在但给出了相同的错误(我注意到 TensorFlow.js 存在一个突出问题,给出了更有意义的错误)。

查看我的 Parcel 设置,我意识到 model.json.bin 文件被复制到 dist 文件夹的根目录中。所以我从导入中删除了目录,现在它可以使用:

const model = await tf.loadLayersModel('model.json');

请注意,我的文件仍在<content_root>/directory/

【讨论】:

    猜你喜欢
    • 2021-02-26
    • 1970-01-01
    • 2021-06-10
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    相关资源
    最近更新 更多