model.fit是否在循环中工作?

时间:2020-08-21 12:13:17

标签: tensorflow keras scikit-learn time-series

我正在尝试将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))

1 个答案:

答案 0 :(得分:1)

一些注意事项:

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

更新:

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

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