我想在NodeJS服务器中从本地文件加载Keras模型到Tensorflow.js中,但出现了以下错误:“仅支持绝对URL”。
let tf = require("@tensorflow/tfjs");(async () => { try { const model = await tf.loadLayersModel("/path/to/model.json"); } catch(error) { console.error(error); }})();
loadLayersModel是否还不支持本地文件?
谢谢!
回答:
Tensorflow的文档指出,您应该使用file://
关键字直接访问文件系统,例如
tf.loadLayersModel("file://path/to/model.json");
模型的路径是相对于您当前调用函数的文件夹。例如,如果上述函数位于/a/b/c文件夹中的文件中,而模型位于/a/d/model.json,那么正确的路径是“file://../../d/model.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); }})();