我正在使用 Keras 制作多层自动编码器,但在制作解码器模型时遇到错误。
我在 Stackoverflow 中看到了一个匹配问题,但我的代码没有错误并且是完整的,所以没有遗漏任何东西
encoding_dim=16
i=Input(shape=(122,))
encoded=Dense(64,activation='relu')(i)
encoded1=Dense(32,activation='relu')(encoded)
encoded2=Dense(16,activation='relu')(encoded1)
decoded=Dense(32,activation='relu')(encoded2)
decoded2 =Dense(64,activation='relu')(decoded)
decoded3 =Dense(122,activation='relu')(decoded2)
autoencoder = Model(i, decoded3)
ec = Model(i,encoded)
encoded_input=Input(shape=(encoding_dim,))
decoder_layer=autoencoder.layers[-3](encoded_input)
decoder_layer=autoencoder.layers[-2](decoder_layer)
decoder_layer=autoencoder.layers[-1](decoder_layer)
**decoder=Model(encoded_input,decoder_layer(encoded_input))**
问题就在这里:
decoder = Model(encoded_input, decoder_layer(encoded_input))
decoder_layer # <-- is a LAYER
decoder_layer(encoded_input) # <-- is a TENSOR
Model
期望inputs=
和outputs=
是两层,而不是张量;输入的层向张量求值。修复:
decoder = Model(encoded_input, decoder_layer)