假设我想对时间序列进行分类,每个时间序列都有33个时间步长。我把它们分成小块。假设我有以下输入X_1
,维度是(32,3,1)
,所以32个样本,3个时间步长,1个特征:
[
[[1], [2], [3]] # step 1 to step 3 from time series 1
[[11], [14], [17]] # step 1 to step 3 from time series 2
[[3], [5], [7]] # step 1 to step 3 from time series 3
...
[[9], [7], [2]] # step 1 to step 3 from time series 32
]
和包含该批次中32个时间序列中的每个时间序列的标签的CCD_ 3。
现在我运行model.fit(X_1, Y)
。
然后,我将每个时间序列的接下来3个时间步长作为X_2
:
[
[[4], [5], [6]] # step 4 to step 6 from time series 1
[[20], [23], [26]] # step 4 to step 6 from time series 2
[[9], [11], [13]] # step 4 to step 6 from time series 3
...
[[8], [1], [9]] # step 4 to step 6 from time series 32
]
以及同样的CCD_ 6。
因为我已经将时间序列分解,所以我使用有状态模型,以便将X_1
中的状态保存为X_2
。
我再次运行model.fit(X_2, Y)
。我重复这一过程,直到从我的输入数据到达包含时间步长31到33的X_11
。在我调用model.fit(X_11, y)
之后,我将调用model.reset_states()
,因为我已经完成了第一批32个时间序列,我可以从一开始就重新开始新的一批32个时序。
至少到目前为止,我还认为这就是实现这一目标的方法。但现在我读到,默认情况下,该状态在批次中的样本中保留,这是否意味着X_0
中时间序列1的前3个步骤的状态也用于时间序列2的前3步?因为这没有意义,他们没有任何共同点,国家不应该在他们之间共享。那么什么是正确的呢?
否,状态是矩阵,其中一个维度是批量大小,这意味着每个样本有一行状态。
系列1与系列2不通信。