【问题标题】:How to update TensorFlow.js saved / trained model如何更新 TensorFlow.js 保存/训练的模型
【发布时间】:2020-02-27 12:36:56
【问题描述】:

您好,我想知道如何在 node js 中更新 TensorFlow js 保存的模型,

我使用 NodeJS 在 TensorFlow js 中创建了一个基本的神经网络,并保存了训练好的模型,并生成了 model.json 和 weights.bin 文件。

我已经看到我们可以在 Python 中更新 keras 中训练好的模型。

但是TensorFlow js、NodeJS和JS中没有更新模型的例子。

请有人帮忙更新训练好的模型。

模型加载和更新代码

var tf = require('@tensorflow/tfjs-node')
async funtion load(){
    const model = await tf.loadLayersModel(url);
}
load().then(() => {
    model.predict(tf.tensor1d([5]))
    model.predict(tf.tensor1d([5]), tf.tensor1d([15]));
    model.predict(tf.tensor1d([5]))
})

【问题讨论】:

    标签: node.js machine-learning keras model tensorflow.js


    【解决方案1】:

    可以加载保存的模型并用于进一步训练。

    const model = await tf.loadLayersModel(url);
    model.predict(feature) // predict with old model
    await model.fit(features, labels); // this will update the weights of the model
    model.predict(feature) // predict with new model
    

    可以保存重新训练的模型,这将更新其权重。就好像模型在初始数据和当前数据上都进行了训练,这意味着它可以预测来自这两个来源的数据。

    但是,如果新数据与初始数据存在显着差异,则模型将无法再次根据初始数据进行良好预测。这个问题好好讨论here

    【讨论】:

    • 您好,感谢您的回复,我已经通过加载训练模型并执行模型 l.predict(new_feature, new_label) 来尝试这种方式。但是当我预测时它仍然给我旧值,它看起来不像更新模型
    • loadLayersModel 是异步的,所以它需要是awaited。我编辑了我的代码
    • 是的,我已经使用 async/await 方法加载了图层,但它没有更新加载的模型,它只是重叠。
    • overlapping 是什么意思?您能否将代码添加到您的问题中?
    • 这是我的代码,当我训练模型时,张量 (x:5) 有张量 (y:10)。即使我通过加载模型在上面的代码中添加了新值(x:5,y:15),它仍然返回 10 作为 y 标签
    猜你喜欢
    • 2020-03-16
    • 2021-09-11
    • 1970-01-01
    • 2019-06-30
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    相关资源
    最近更新 更多