这是有关Keras API设计的问题。对于在Keras中定义的经过训练的DNN模型,如果我想获得中间模型及其层的输出,则必须创建一个新模型。
from keras.models import Model
model = ... # create the original model
layer_name = 'my_layer'
intermediate_layer_model = Model(inputs=model.input,
outputs=model.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model.predict(data)
在我看来,原始的训练模型应该已经包含了中间层的信息。仅通过直接将数据馈入原始模型而不是创建另一个模型来从原始模型中提取它们是否更直观?为什么Keras中的Model类不直接提供此类API?