Я пытаюсь получить значения в простом векторе, используя автоэнкодер
, вот мой код
input_img = Input(shape=(28, 28, 1))
x = Conv2D(32, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)
encoded = MaxPooling2D((2, 2), padding='same')(x)
Здесь мне нужен сплющенный слой
encoder = Model(input_img, encoded)
Изатем сделать его сверточным обратно
encoderOutputShape = encoded._keras_shape[1:]
# unflatten here
decoder_input= Input(encoderOutputShape)
decoder = Conv2D(32, (3, 3), activation='relu', padding='same')(decoder_input)
x = UpSampling2D((2, 2))(decoder)
x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)
decoder = Model(decoder_input, decoded)
auto_input = Input(shape=(28,28,1))
encoded = encoder(auto_input)
decoded = decoder(encoded)
auto_encoder = Model(auto_input, decoded)
Как это сделать правильно?
Другими словами, я хочу получить выходные данные кодера (или использовать случайные данные), изменитьэто и положить в декодер и получить декодированный результат.