реализовать keras ConvLSTM2D с последующими кадрами для прогнозирования одного значения - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь реализовать ConvLSTM2D, чтобы использовать последовательность видеокадров с низким разрешением, чтобы сделать прогноз того, что будет добавлено после. Предсказание - это не кадр или видео, а отдельные значения (вид классификации на основе того, что добавляется ранее) Каждый кадр 5x3x4 (каналы RGB + одно серое ИК-изображение последним) Таким образом, мой вход имеет форму [сэмплы, временные шаги, 5, 3, 4) и вывод [сэмплы, 1].

Я следую этому примеру и пытаюсь решить проблему безуспешно https://github.com/keras-team/keras/blob/master/examples/conv_lstm.py

seq = Sequential()
seq.add(ConvLSTM2D(filters=40, kernel_size=(3, 2),
                   input_shape=(timesteps, 5 , 3, 4),
                   padding='same', strides=(2, 1), 
                   return_sequences=True))
seq.add(BatchNormalization())

seq.add(Conv3D(filters=40, kernel_size=(2, 2, 2),
               activation='sigmoid',
               padding='same', data_format='channels_last'))

seq.add(Dense(1, activation='sigmoid'))

seq.compile(loss='binary_crossentropy', optimizer='adadelta')

seq.fit(compil,yn, batch_size=32,
        epochs=300, validation_split=0.05)

Я получил это сообщение об ошибке: ValueError: Ошибка при проверке цели: ожидается, что плотность_7 будет иметь 5 измерений, но получен массив с формой (35040, 1, 1) Я пытаюсь включить "return_sequence = False" и получить это: ValueError: вход 0 несовместим со слоем conv3d_5: ожидаемый ndim = 5, найденный ndim = 4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...