Tensorflow - 获取自动编码器的隐藏层输出

时间:2021-06-18 18:07:11

标签: python tensorflow keras autoencoder

我有一个堆叠式自动编码器,其结构类似于 500-250-100-50-100-250-500。我现在想取出 50 维隐藏层并使用它使用 softmax 层将我的输入数据分类为 2 类。

这意味着我需要我的自动编码器将我的训练数据集中的 500 维输入向量压缩为 50 维向量,并使用它来训练 softmax 层。除此之外我还需要50维的隐藏层。

我如何获得隐藏层:autoencoder.layers[3]

但是我如何得到 500 维输入向量的压缩 50 维向量呢?使用 autoencoder.predict(x_train) 时,我需要获取该隐藏层的输出。

1 个答案:

答案 0 :(得分:1)

如果您想从隐藏层获得另一个输出,您可以获取输出并将其添加到新模型中,如下所示:

new_model = tf.keras.Model(inputs=autoencoder.input, outputs=[autoencoder.layers[3].output, autoencoder.output])

然后你可以得到这样的预测:

hidden_layer_pred, last_layer_pred = new_model.predict(x_train)