Моя модель выглядит так:
input_left = model.layers[0]
input_right = model.layers[1]
sub_model = model.layers[2] # has 2 inputs and 2 outputs
loss_layer = model.layers[3] # has 2 inputs and 1 output
Я могу получить вывод всех слоев, используя:
outputs = []
for i, _ in enumerate(layer._inbound_nodes):
outputs.append(layer.get_output_at(i))
# since my sub_model has multiple outputs
# notion of sub_model.output does not make sense
get_all_layer_outputs = backend.function([*model.input, backend.learning_phase()],
[*outputs])
output_of_all_layers = get_all_layer_outputs(x)
У меня есть модель, скажем, sub_model
, вложенная в текущий model
, и как мне получить выходные данные каждого слоя в пределах sub_model
?
Что я пробовал:
for layer in sub_model.layers:
outputs.append(layer)
При построении бэкэнд-функции с ее помощью меня просят ввести другой вход (кроме input_left, input_right). Даже если ввести его, только этот вход будет проходить через sub_model
слои и даст мне вывод.
Как получить выходные данные sub_model
слоев, используя фактические входные данные модели input_left
и input_right
, например, как это будет происходить во время fprop?