我有一个堆叠式自动编码器,其结构类似于 500-250-100-50-100-250-500
。我现在想取出 50 维隐藏层并使用它使用 softmax 层将我的输入数据分类为 2 类。
这意味着我需要我的自动编码器将我的训练数据集中的 500 维输入向量压缩为 50 维向量,并使用它来训练 softmax 层。除此之外我还需要50维的隐藏层。
我如何获得隐藏层:autoencoder.layers[3]
但是我如何得到 500 维输入向量的压缩 50 维向量呢?使用 autoencoder.predict(x_train)
时,我需要获取该隐藏层的输出。
答案 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)