import keras.backend as K
from keras.models import Model
from keras.layers import Input, Dense
input_layer = Input((10,))
layer_1 = Dense(10)(input_layer)
layer_2 = Dense(20)(layer_1)
layer_3 = Dense(5)(layer_2)
output_layer = Dense(1)(layer_3)
basic_model = Model(inputs=input_layer, outputs=output_layer)
# some random input data
import numpy as np
features = np.random.rand(100,10)
# Intermediate model has the same input as basic model,
# but has all the intermediate layers as outputs
intermediate_model = Model(inputs=basic_model.layers[0].input,
outputs=[l.output for l in basic_model.layers[1:]])
intermediate_model.predict(features) # outputs a list of 4 arrays
1 回答
如果要从模型中获取中间输出,可以构造一个新的
Model
实例,并将您感兴趣的层作为输出张量(或输出张量列表)传递 .最小的工作示例,来自this答案: