Новая функция tf.keras.preprocessing.timeseries_dataset_from_array
используется для создания скользящей мини-партии windows поверх последовательных данных, например, для задач, связанных с сетями RSN.
В соответствии с документами она возвращает мини-пакет входов и целей. Однако целевой мини-пакет, возвращаемый этой функцией, не имеет измерения sequence_length
(временные шаги). Например.
data = timeseries_dataset_from_array(
data=tokens,
targets=targets,
sequence_length=25,
batch_size=32,
)
for minbatch in data:
inputs, targets = minbatch
assert(inputs.shape[1] == targets.shape[1]) # error
inputs
имеет форму [32, 25, 1]
на тот случай, если у вас там уже есть индексы слов, а targets
смущенно имеет [32, 1]
форму.
Итак, мой вопрос: как мне отобразить тензор входных данных с окном 25 единиц на целевой тензор с окном 0 единиц?
Как я всегда тренирую модели последовательности путем подачи входного тензора [32, 25, 1]
, который затем проецируется в [32, 25, 100]
, а затем вы подаете целевой тензор в сеть размером [32, 25, 1]
в функцию потерь или, если у вас есть проблема с несколькими классами, целевой вектор [32, 25, num_of_classes]
.
Вот почему меня смущает форма целевого тензора из timeseries_dataset_from_array
и интуиция за ним.