在 tensorflow.js 中为节点加载模型时,权重不是 loaded/saved

when loading a model in tensorflow.js for node, the weights aren't loaded/saved

当我加载我之前保存的经过训练的模型(在 tensorflow.js 中 Node.js 中)时,正在加载模型拓扑,但加载了 none 的权重(所以我必须从头开始训练模型)。没有抛出任何错误。

为了保存模型,我正在使用:

async function save(path) {
    //misc. unrelated code goes here
    await model.save('file://' + path);
}

出现所有文件(model.jsonweights.bin),并且未抛出任何错误。

要加载文件,我正在使用:

async function load(path) {
    //misc. unrelated code goes here.
    model = await tf.loadLayersModel('file://' + path + '/model.json');
}

同样,没有抛出任何错误。模型拓扑已正确加载。虽然没有权重,但模型的行为就像我刚刚 constructed/compiled 它一样。

我正在使用 tfjs-node 保存:

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

如果有任何帮助或建议,我将不胜感激!!!谢谢!

save() 和 loadLayersModel() 是异步函数。

model.save(url).then(result => console.log(result));

tf.loadLayersModel(url).then(result => console.log(result))

事实证明这只是一个愚蠢的错误。

我有一个包装器函数可以为 model.compile() 添加一些功能。

出于某些被遗忘的原因,在那个函数中,我调用了我的初始化函数,它覆盖了模型。

tl;dr,不要覆盖您想保留的模型。