Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 继续就新数据培训LSTM模型_Python_Keras_Lstm - Fatal编程技术网

Python 继续就新数据培训LSTM模型

Python 继续就新数据培训LSTM模型,python,keras,lstm,Python,Keras,Lstm,我是机器学习领域的新手,目前正在努力寻找如何在模型加载后继续训练。几乎找不到类似的主题,但仍然无法理解 我得到了时间序列预测的模型,并希望在出现新数据时对其进行重新训练(data_original+data_new)。问题是,如果我加载模型并想继续训练,它似乎是从零开始的。即使我使用完全相同的设置和数据(用于训练原始模型),也会发生这种情况 伪代码: def update_model(model, data, batch_size, updates): X, y = t

我是机器学习领域的新手,目前正在努力寻找如何在模型加载后继续训练。几乎找不到类似的主题,但仍然无法理解

我得到了时间序列预测的模型,并希望在出现新数据时对其进行重新训练(data_original+data_new)。问题是,如果我加载模型并想继续训练,它似乎是从零开始的。即使我使用完全相同的设置和数据(用于训练原始模型),也会发生这种情况

伪代码:

    def update_model(model, data, batch_size, updates):

        X, y = train[:, :-n_seq], train[:, -n_seq:]
        X = X.reshape(X.shape[0], n_lag, n_features)
        model.compile(loss='mean_squared_error', optimizer='adam')

        for i in range(updates):               
            model.fit(X, y,epoch=1,b_size=1,verbose=0, shuffle=False)
            model.reset_states()
        return model

    model = load_model("multivariete_model.h5")

你告诉keras每次打电话都要重新编译模型

model.compile()
每次调用
update\u model
时,您都会这样做:

model.compile(loss='mean_squared_error', optimizer='adam')

删除该行,培训将从以前的状态继续进行。

刚刚删除该行,并在10个时代后运行代码,对模型进行评估:原始:0.6359964006149502重新培训:0.00293751016101346:,这稍微好一点,但仍然无法解决问题。我们将在某个时候达到模型可以在给定当前参数的情况下学习。因此,除非你有另一个问题,我认为当前的行为如预期的那样。我并不真的这么认为@orsonady,我试图通过训练和重新训练几个模型来证明你的理论,但每次都是从头开始。@parsethis,我应该向加载的模型提供全部数据(上一个数据+新数据)吗?或者我应该只提供新数据吗?可能使用model.train\u on_batch()而不是再次调用fit