javascript - 在 reactjs 中为 tensorflowjs 加载 model.json 不起作用

标签 javascript reactjs tensorflow.js

我正在尝试从我的 React 应用程序的根目录加载一个 model.json 文件及其 weights.bin。

当我调用一个从 storage.googleapis.com 在线找到的示例时,它可以工作,但从我的根目录加载则不行。

我的 React 应用中 App.js 的内容...

import React from "react";
import "./styles.css";

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

// example model - working
async function predict() {
  const model = await tf.loadGraphModel(
    "https://storage.googleapis.com/tfjs-models/savedmodel/mobilenet_v2_1.0_224/model.json"
  );
  console.log(typeof model);
}

// my model - not working
async function predictAlt() {
  const myModel = await tf.loadLayersModel("file://my-model.json");
  console.log(typeof model);
}

export default function App() {
  return (
    <div className="App">
      <button onClick={predict} style={{ fontSize: "20px" }}>
        example model
      </button>
      <br />
      <br />
      <button onClick={predictAlt} style={{ fontSize: "20px" }}>
        my model
      </button>
    </div>
  );
}

最佳答案

文件 URI 方案 file://url 仅用于加载模型服务器端。要在浏览器中加载模型,系统会提示用户选择模型拓扑 (model.json) 和权重文件。 doc包含如何通过使用文件输入元素提示用户来加载模型的示例。

如果不要求用户选择模型文件,则模型需要由服务器提供。例如,model.json 和权重可以位于部署的应用程序的 Assets 文件夹中。然后 url 只需要指向 model.json 而无需 file:// 如下:

const myModel = await tf.loadLayersModel("assets/my-model.json");

如果在加载模型时出现一些错误,查看开发者控制台中的网络选项卡将有助于查看是否找到了文件

关于javascript - 在 reactjs 中为 tensorflowjs 加载 model.json 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61825870/

相关文章:

javascript - 在 React 中,如何通过编写一个不导入任何文件的简单函数来添加复制到剪贴板功能?

javascript - 数据无法从 React/Flux 应用程序中的 API 更新

javascript - Uncaught Error : Based on the provided shape, [1024,3],张量应该有 3072 个值但有 30

javascript - Laravel 使用 JavaScript 函数出现未知错误

css - 如何使网格移动响应响应

php - 在 PHP 和 Javascript AJAX 中返回一个数组

python - 如何将 Tensorflow 模型转换为 tensorflow.js 模型?

javascript - 如何使用 Node.js (tfjs-node) 从 Tensorflow.js 中的检查点重新启动模型训练?

javascript - jquery 只允许点与数字

javascript - ng-显示不工作 Angular