获取特定层的输出作为测试数据的结果,代替 keras 中的最后一层(自动编码器潜在特征)

Get the output of a specific layer as the result on test data in place of last layer (auto-encoder latent features) in keras

我正在尝试获取 latent layer/hidden layer 的输出以将其用作其他内容的输入。我以一种有效的方式训练我的模型以最大限度地减少损失,因此我的模型可以有效地学习潜在特征并尽可能接近图像。 我的模型是

input_img = Input(shape=(28, 28, 1))  # adapt this if using `channels_first` image data format

#Encoder
x = Conv2D(16, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)

encoded = MaxPooling2D((2, 2), padding='same')(x) 


# Decoder
x = Conv2D(8, (3, 3), activation='relu', padding='same')(encoded) 
x = UpSampling2D((2, 2))(x) # opposite of Pooling
x = Conv2D(16, (3, 3), activation='relu')(x)
x = UpSampling2D((2, 2))(x)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

autoencoder = Model(input_img, decoded)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')

我想要 encoded 层的输出作为模型的输出。可能吗? ad 如果是,请告诉我怎么做。

你可以简单地这样做

autoencoder.fit(...)

latent_model = Model(input_img, encoded)
latent_representation = latent_model.predict(X)