Граф Кераса отключен при множественном входе - PullRequest
0 голосов
/ 07 августа 2020
from keras.models import load_model

model = load_model('my_model.h5')
model.summary()

Моя модель выглядит так:

Model: "model_1"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_2 (InputLayer)            (None, 205, 96, 3)   0                                            
__________________________________________________________________________________________________
input_3 (InputLayer)            (None, 205, 96, 3)   0                                            
__________________________________________________________________________________________________
inception_v3 (Model)            (None, 2048)         21802784    input_2[0][0]                    
                                                                 input_3[0][0]                    
__________________________________________________________________________________________________
lambda_1 (Lambda)               (None, 2048)         0           inception_v3[1][0]               
                                                                 inception_v3[2][0]               
__________________________________________________________________________________________________
similarity (Dense)              (None, 1)            2049        lambda_1[0][0]                   
==================================================================================================
Total params: 21,804,833
Trainable params: 21,770,401
Non-trainable params: 34,432
__________________________________________________________________________________________________

Я хочу получить выходные данные модели слоя 'inception_v3' (промежуточный) в качестве вектора функций, и у меня есть два входа

layer_name = 'inception_v3'
intermediate_layer_model = Model(inputs=model.input,
                                 outputs=model.get_layer(layer_name).layers[-1].output)

Я хочу, чтобы мой вывод выглядел так:

__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_2 (InputLayer)            (None, 205, 96, 3)   0                                            
__________________________________________________________________________________________________
input_3 (InputLayer)            (None, 205, 96, 3)   0                                            
__________________________________________________________________________________________________
inception_v3 (Model)            (None, 2048)         21802784    input_2[0][0]                    
                                                                 input_3[0][0]  
__________________________________________________________________________________________________

, но мой код генерирует эту ошибку:

ValueError: Graph disconnected: cannot obtain value for tensor Tensor("input_1:0", shape=(?, 205, 96, 3), dtype=float32) at layer "input_1". The following previous layers were accessed without issue: []

Я сослался на чей-то документ: График отключен: невозможно получить значение для тензора Tensor Input Keras Python, но его вопрос кажется другим.

Как я могу решить?

...