Правильный ввод для TimeDistributed Convolution2D Keras - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть последовательность из 327 кадров размером 480 строк и 640 столбцов в оттенках серого.

print (X_train.shape) дает: (327, 480, 640, 1)

I иметь следующую модель:

N = 2 #number of frames to distribute
model = Sequential()
model.add(TimeDistributed(Convolution2D(32, activation='relu'), input_shape = (N, 480,640,1)))
...

print (model.output_shape) дает: (Нет, 2, 480, 640, 32)

Мне нужно еще одно измерение, чтобы перейти к этому входу свертка. Фактически у меня есть следующая ошибка: ValueError: Ошибка при проверке ввода: ожидалось, что time_distributed_1_input будет иметь 5 измерений, но получил массив с формой (327, 480, 640, 1)

Как решить эту проблему?

Спасибо!

Редактировать: По сути, мне нужно преобразовать вход (327, 480, 640, 1) в (x, 2, 480, 640, 1) (x = 327/2? )

1 Ответ

0 голосов
/ 16 апреля 2020

Вы пытаетесь выполнить двумерную свертку для трехмерных данных (2x480x640). Используйте Convolution3D .

...