我正在尝试获取潜在层/隐藏层
的输出,以便将其用作其他操作的输入。我以一种高效的方式训练了我的模型,以最小化损失,使我的模型能够高效地学习潜在特征,并尽可能接近图像。我的模型是
input_img = Input(shape=(28, 28, 1)) # 如果使用`channels_first`图像数据格式,请调整此处# 编码器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) # 解码器x = Conv2D(8, (3, 3), activation='relu', padding='same')(encoded) x = UpSampling2D((2, 2))(x) # 池化的反操作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
层的输出作为我的模型输出。这可能吗?如果可以,请告诉我如何操作。
回答:
你可以简单地按以下方式操作
autoencoder.fit(...)latent_model = Model(input_img, encoded)latent_representation = latent_model.predict(X)