Я пытаюсь реализовать 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