【问题标题】:Does model.fit works in loops?model.fit 是否循环工作?
【发布时间】:2020-12-10 19:59:06
【问题描述】:

我正在尝试将 sklearn 中的 TimeSeriesSplit 应用于时间序列模型分类问题。下面的代码有效,但我不确定这个 fit_generator 是建立在以前的结果之上还是只是重新开始学习?

tscv = TimeSeriesSplit()
for tr_index, val_index in tscv.split(X):
    X_tr, X_val = X[tr_index], X[val_index]
    y_tr, y_val = Y[tr_index], Y[val_index]
    generator = TimeseriesGenerator(X_tr, y_tr, length=n_input, batch_size=32)
    history.append(model.fit_generator(generator, epochs=100, validation_data=
    TimeseriesGenerator(X_val, y_val, length=n_input, batch_size=32), verbose=2))

【问题讨论】:

    标签: tensorflow keras scikit-learn time-series


    【解决方案1】:

    几点说明:

    1. 是的,在 X 的每次拆分(检查以查看 TSVC 中的默认拆分数,应该是 5)时,都会创建新的训练和验证集,因此会开始新的训练课程。即使只有一个拆分,for 循环也会变得多余,但代码不会失败。
    2. 从 TensorFlow 2.1 开始,model.fit_generator() 已被弃用,取而代之的是 model.fit()。您可能希望选择后者。

    更新:

    您可以在documentation 中看到拆分数为 5。因此您将拥有 5 个不同的网络,所有这些网络都从头开始训练。

    https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html

    【讨论】:

    • @tonywang 既然您接受它作为解决方案之一,您能否也支持我的回答?它对我和其他人都有帮助。谢谢。
    猜你喜欢
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2022-01-07
    相关资源
    最近更新 更多