Я пытаюсь собрать SSD на основе предварительно обученного MobileNetV2. Поэтому мне нужно получить выходные данные из нескольких уровней ядра MobileNet, добавить несколько Convolutions, Priors, Reshaping, Concatenate ... И, наконец, затем попытаться создать модель: model = Model(inputs=img_input, outputs=out)
, у меня проблема с «Разъединением графика».
Вот мой псевдокод:
img_input = Input((224,224,3))
conv_model = MobileNetV2(weights='imagenet',
include_top=False,
alpha=0.35,
pooling=None,
input_shape=(224, 224, 3))
block14 = conv_model.get_layer('block_14_project_BN').output
block14_box_conf = Conv2D(...)(block14)
block14_box_loc = Conv2D(...)(block14)
block14_priors = PriorBox(...)(block14_box_loc)
# same for other blocks
# Reshaping, Concatinations... softmax for conf...
model = Model(inputs=img_input, outputs=out)
И, наконец, у меня ошибка:
Graph disconnected: cannot obtain value for tensor Tensor("input_1:0", shape=(?, 224, 224, 3), dtype=float32) at layer "input_1".
The following previous layers were accessed without issue: []
Я могу построить MobileNet "по кирпичикам", но в этом случае не смогу загружать веса. И мне нужно понять причину этой ошибки.
Кроме того, эта ошибка появляется, если я пытаюсь использовать выходные данные какого-то внутреннего слоя вложенной модели, даже в не таких сложных случаях, как SSD.