使用 loadLayersModel 在 Tensorflow.js 中加载 Keras 模型时“仅支持绝对 URL”

Adr*_*gru 6 machine-learning node.js keras tensorflow.js

我想从 NodeJS 服务器内的本地文件加载 Tensorflow.js 中的 Keras 模型,但出现以下错误:“仅支持绝对 URL”。

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

(async () => {
    try
    {
        const model = await tf.loadLayersModel("/path/to/model.json");
    }
    catch(error)
    {
        console.error(error);
    }
})();
Run Code Online (Sandbox Code Playgroud)

loadLayersModel 不支持本地文件吗?

谢谢!

Abh*_*pta 11

Tensorflow文档表明你应该使用file://关键字直接使用你的文件系统,所以像

tf.loadLayersModel("file://path/to/model.json");

模型的路径相对于您当前从中调用函数的文件夹。例如,如果上述函数在 /a/b/c 中的文件中,而模型在 /a/d/model.json 中,则正确的路径是“file://../../d/model.json”。 json”。

此外,还需要一个 require('@tensorflow/tfjs-node'),否则会抛出以下错误:“仅支持 HTTP(s) 协议”。

完整的工作示例:

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

(async () => {
    try
    {
        const model = await tf.loadLayersModel('file://relative/path/to/model.json');
    }
    catch(error)
    {
        console.error(error);
    }
})();
Run Code Online (Sandbox Code Playgroud)