【问题标题】:Keras Time series prediction with pre trained model使用预训练模型进行 Keras 时间序列预测
【发布时间】:2024-01-20 23:17:01
【问题描述】:

我在 Keras 中有一个预先准备好的时间序列,并且也想从给定日期获得预测。像这样:

from keras import load_model
def predict(date, filename):
    model = load_model(filename)
    # Do domething to get input_data from date
    return model.predict(input_data)

那该怎么做呢?

【问题讨论】:

    标签: python keras time-series


    【解决方案1】:

    您可以通过

    保存keras 模型
    # assume model is the trained keras model
    # save the underlying tensorflow graph
    model_file = model.to_json()
    with open("model.json", "w") as source:
        source.write(model_file)
    # save model parameter 
    model.save_weights("weights.h5")
    

    那么保存的模型就可以被加载了

    from keras.models import model_from_json
    
    with open("model.json", "r") as f:
        model = model_from_json(f.read())
    model.load_weights("weights.h5")
    

    【讨论】:

    • 不是和model.save(model.h5)和model = keras.load_model(model.h5)一样吗?
    • 我运行了一个简单的测试,看起来它们是一样的。顺便说一句,我在原来的答案中犯了一个错误,已经解决了。
    • 不行,写入模型到json文件的步骤不能跳过,否则,没有模型给你load_weights from。
    • model.save() 与 model.save_weights() 不同,model.load_weights() 与 model = load_model() 不同
    最近更新 更多