Предположим, я хочу классифицировать временные ряды, каждый из которых имеет 33 временных шага.Я разделил их на более мелкие куски.Допустим, у меня есть следующий Input 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
]
и Y = [A, A, B, …, B]
, содержащие метки для каждого из них.32 временных ряда в этом пакете.
Теперь я запускаю 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
]
и снова то же самое Y = [A, A, B, …, B]
.
Поскольку я разделил временной ряд, я использую модель с состоянием, так что состояние из X_1
сохраняется для X_2
.
Снова бегу model.fit(X_2, Y)
.Я повторяю это до тех пор, пока не достигну X_11
с шагом от 31 до 33 из моих входных данных.После того, как я позвонил model.fit(X_11, y)
, я позвоню model.reset_states()
, потому что я закончил с первой партией из 32 временных рядов, и я могу начать сначала с новой партией из 32 временных рядов.
По крайней мере, до сих пор я думал, что это способ сделать это.Но теперь я прочитал, что это состояние сохраняется по умолчанию для выборок в пакете, что также означает, что состояние из первых 3 шагов временного ряда 1 в X_0
также используется для первых 3 шагов из временного ряда 2?Потому что это не имеет смысла, у них нет ничего общего, государство не должно делиться между ними.Так что же правильно?