Я получаю сообщение об ошибке при вводе нового ввода в средний слой с керасом - PullRequest
0 голосов
/ 08 июля 2019

Я хочу знать, как получить выходные данные, когда новый вход вводится из среднего слоя для изученной модели.

def encoder(input_):
    d1 = Dense(3, activation='relu', name='encoder_input')(input_)
    d2 = Dense(2, name='encoder_output')(d1)
    return d2

def decoder(input_):
    d1 = Dense(3, activation='relu', name='decoder_input')(input_)
    d2 = Dense(2, name='decoder_output')(d1)
    return d2

# input
input = Input(shape=(2,))

# output
output = decoder(encoder(input))

# model
model = Model(inputs=input, outputs=output)

model.compile(optimizer='adam', loss='mean_squared_error')
model_hist = model.fit(x_train, x_test,
                        epochs=n_epoch,
                        batch_size=batch_size,
                        verbose=verbose,
                        shuffle=True)

#error:Graph disconnected: cannot obtain value for tensor 
tmp_model = Model(input=model.get_layer('decoder_input').input, output=model.get_layer('decoder_output').output)
output = tmp_model.predict(data)

1 Ответ

0 голосов
/ 08 июля 2019

Я мог найти две ошибки в вашем коде:

  1. В кодировщике в d2 вы забыли name= до 'encoder_output'

  2. Вы забыли "s" в строке

# model
model = Model(input=input, output=output)

должно быть:

model = Model(inputs=input, outputs=output)

Иначе это работает для меня. Надеюсь, это помогло!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...