kerasで中間層に新たな入力を入れたときにエラーが出る
学習済みのNNモデルに対し,中間層から新たな入力を入れた際の出力値を得る方法を知りたいです.
試したこと
コードの一部です.下のtmp_modelを定義している部分でGraph disconnected: cannot obtain value for tensorというエラーが出ます.中間層出力を得たい場合は同じようなやり方で出来たのですが,モデルの中間層から新たな入力をいれ出力を得るということは出来ないのでしょうか.
(質問を簡潔にするため層の数などは適当な値を使ってます.)
def encoder(input_):
d1 = Dense(3, activation='relu', name='encoder_input')(input_)
d2 = Dense(2, '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(input=input, output=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)
#このtmp_modelを定義した部分で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)