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

时间:2019-05-08 22:32:51

标签: node.js machine-learning 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);
    }
})();

loadLayersModel是否还不支持本地文件?

谢谢!

1 个答案:

答案 0 :(得分:1)

Tensorflow documentation表示您应该使用file://关键字直接用于文件系统,类似

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

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

此外,需要require('@ tensorflow / tfjs-node'),否则将引发以下错误:“仅支持HTTP协议”。

完整的示例:

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);
    }
})();