Tensorflow 2 timeseries_dataset_from_array входные данные по сравнению с разницей форм целевого пакета - PullRequest
0 голосов
/ 21 апреля 2020

Новая функция 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 и интуиция за ним.

...