【发布时间】:2017-11-21 10:41:49
【问题描述】:
我正在关注 keras here 中的深度自动编码器教程。
对于开头的简单自动编码器,decoder 定义如下:
# retrieve the last layer of the autoencoder model
decoder_layer = autoencoder.layers[-1]
# create the decoder model
decoder = Model(encoded_input, decoder_layer(encoded_input))
如果您有多个解码器层,这将不再起作用。如果我有三个解码器层,如何做类似的事情?
encoded = Dense(128, activation='relu')(input_img)
encoded = Dense(64, activation='relu')(encoded)
encoded = Dense(32, activation='relu')(encoded)
decoded = Dense(64, activation='relu')(encoded)
decoded = Dense(128, activation='relu')(decoded)
decoded = Dense(784, activation='sigmoid')(decoded)
autoencoder = Model(input_img, decoded)
encoder = Model(input_img, encoded)
对于编码器,它确实很容易工作,但是如何获得最后三层的模型?
【问题讨论】:
-
你的意思是你想使用几层的神经网络作为你的解码器吗?或者您想使用几个不同的解码器来输入相同的输入?
-
我有一个输入层(比如 784 个神经元),然后是一些具有收缩神经元的编码器层(比如 32 个神经元),然后是解码器层(现在恢复到 784 个神经元)。问题是,训练后我只想使用网络的一部分(编码器或解码器层)。
-
我不确定这是否有帮助,但可能更接近您正在寻找的东西。 - github.com/fchollet/keras/issues/358#issuecomment-119379780
标签: python machine-learning neural-network deep-learning keras