【问题标题】:Tensorflow - Get hidden layer output of an autoencoderTensorflow - 获取自动编码器的隐藏层输出
【发布时间】:2021-06-18 18:07:11
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python tensorflow keras autoencoder


    【解决方案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)
    

    【讨论】:

    • 为什么我需要tf.keras.Model 中的autoencoder.outputautoencoder.layers[3].output 不够吗?
    • 如果你想把它们都放在一个模型中,你可以这样做。但如果只是隐藏层对你来说就足够了,是的,你可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2021-04-23
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多