Я планирую использовать сеть LSTM для задачи преобразования изображения в изображение. Входные данные состоят из трех изображений, в то время как выходные данные должны содержать только одно изображение.
Вот один пример для предсказания видеокадра, который я нашел:
seq = Sequential()
seq.add(ConvLSTM2D(filters=40, kernel_size=(1,1),
input_shape=(None, 40, 40, 3), #Will need to change channels to 3 for real images
padding='same', return_sequences=True,
activation='relu'))
seq.add(BatchNormalization())
seq.add(ConvLSTM2D(filters=40, kernel_size=(2,2),
padding='same', return_sequences=True,
activation='relu'))
seq.add(BatchNormalization())
seq.add(ConvLSTM2D(filters=40, kernel_size=(1,1),
padding='same', return_sequences=True,
activation='relu'))
seq.add(BatchNormalization())
seq.add(ConvLSTM2D(filters=40, kernel_size=(2,2),
padding='same', return_sequences=True,
activation='relu'))
seq.add(BatchNormalization())
seq.add(Conv3D(filters=3, kernel_size=(1,1,1),
activation='sigmoid',
padding='same', data_format='channels_last'))
seq.compile(loss='binary_crossentropy', optimizer='adadelta')
Выход имеет одинаковую длину / количество хотя фреймы в качестве входных данных.
Теперь мне интересно, как я могу изменить вывод, чтобы предсказать только один кадр?
Заранее спасибо,
ура,
M
EDIT: я только что заметил, что могу установить флаг return_sequence в False, возвращая только последние активации состояния. Может ли это быть решением?