Как исправить ошибку «объект Tensor не вызывается» в коде keras? - PullRequest
0 голосов
/ 11 октября 2019

Я делаю многослойный авто-кодер, используя 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))**

1 Ответ

1 голос
/ 11 октября 2019

Проблема здесь:

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)
...