как подать 5D тензор в LSTM? - PullRequest
0 голосов
/ 05 июня 2018

У меня есть видеоданные с входной формой сети 3D CNN в виде (150, 80, 80, 16, 3).

Я получил выходной слой конвона с формой (150, 7, 7,2, 512), который указывает:

150 Количество последовательностей

7,7 высота и ширина

2 временного измерения

512 карт объектов

Я хочу передать это в LSTM, поэтому я изменил выходные данные в:

model.add(Reshape((1, 7*7*2*512)))
model.add(LSTM(100, return_sequence=true))

, это работает с LSTM, но я не уверен, правильно ли это или нет (я должен поставитьtime-space = 16 и измените номер объекта на 3136, основываясь на временном измерении, которое мы выбрали в начале).Я знаю, что LSTM должен получить данные с формой (последовательности, пространство-время, особенности).

Пожалуйста, если у вас есть предложения, я буду рад за это.

Спасибо

1 Ответ

0 голосов
/ 05 июня 2018

Вы действительно близки, но упускаете важный шаг для организации временных шагов или временного измерения.Что вам нужно, так это (150, 2, 7*7*512), что означает 150 образцов, 2 временных шага и сглаженные элементы.Таким образом, вы можете сначала переставить, а затем изменить форму:

model.add(Permute((3, 1, 2, 4)) # (samples, 2, 7, 7, 512)
model.add(Reshape((2, 7*7*512)) # (samples, 2, 7*7*512)

Теперь LSTM будет обрабатывать 2 временных шага объектов сглаженного изображения.

Обратите внимание, что на самом деле это очень большое пространство объектов для каждого временного шага, вы можетехотите уменьшить набор функций с помощью операций объединения или других уровней CNN.

...