(Предполагается, что TF2)
Я думаю, что наиболее простым подходом было бы назвать ваши слои, а затем вызывать их со стандартным вводом, чтобы ваша модель могла выглядеть как
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28), name='flatten'),
keras.layers.Dense(128, activation='relu', name='hidden'),
keras.layers.Dense(10, activation='softmax')
])
Затем просто создайте входные данные, и
my_input = tf.random.normal((1, 28, 28)) # Should be like the standard input to your network
output_of_flatten = model.get_layer('flatten')(my_input)
output_of_hidden = model.get_layer('hidden')(output_of_flatten)
output_of_hidden
- это то, что вы ищете
Альтернативный подход
Если вы ищете более Общее решение, предполагая, что ваша модель последовательная, вы можете использовать ключевое слово index
get_layer
, например,
my_input = tf.random.normal((1, 28, 28)) # Should be like the standard input to your network
desired_index = 1 # 1 == second layer
for i in range(desired_index):
my_input = model.get_layer(index=i)(my_input)
. В конце этого l oop my_input
должно быть то, что вы ищете для