隐藏的层在哪里?

时间:2020-11-09 23:02:59

标签: keras neural-network nlp keras-layer autoencoder

我对自动编码器有点陌生。我有来自Keras(https://blog.keras.io/building-autoencoders-in-keras.html)的代码。我想知道我在这里的代码中的注释正确吗?

input_img = keras.Input(shape=(784,)) # input
encoded = layers.Dense(128, activation='relu')(input_img) # is it hidden layer???
encoded = layers.Dense(64, activation='relu')(encoded) # is it hidden layer???
encoded = layers.Dense(32, activation='relu')(encoded) # is it hidden layer???

decoded = layers.Dense(64, activation='relu')(encoded) # is it hidden layer???
decoded = layers.Dense(128, activation='relu')(decoded) # is it hidden layer???
decoded = layers.Dense(784, activation='sigmoid')(decoded) # output

如果可能的话,你们能解释更多吗?谢谢!

1 个答案:

答案 0 :(得分:0)

隐藏层是位于输入和输出层(ref)之间的任何层。因此,所有这些都是您网络中的隐藏层:

encoded = layers.Dense(128, activation='relu')(input_img)
encoded = layers.Dense(64, activation='relu')(encoded)
encoded = layers.Dense(32, activation='relu')(encoded)
decoded = layers.Dense(64, activation='relu')(encoded)
decoded = layers.Dense(128, activation='relu')(decoded)

在自动编码器中,有一个特别有趣的隐藏层:网络中的“瓶颈”隐藏层,该层强制对原始输入进行压缩的知识表示。在您的示例中,压缩率为784到32,瓶颈隐藏层为:

encoded = layers.Dense(32, activation='relu')(encoded)

enter image description here

source