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

Tensorflow - Get hidden layer output of an autoencoder

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

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

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

但是如何得到500维输入向量压缩后的50维向量呢?使用 autoencoder.predict(x_train).

时,我需要获取该隐藏层的输出

如果你想从隐藏层获得另一个输出,你可以像这样获取输出并将其添加到新模型中:

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)