Python 如何从keras中间层(包括之前的所有层)获得预测

Python 如何从keras中间层(包括之前的所有层)获得预测,python,keras,Python,Keras,下面是keras常见问题解答示例[1],我想澄清如何从中间层获得预测。假设我有几个密集的层,有辍学,例如 model = Sequential() model.add(Dense(out_dim, input_dim=input_dim, name="layer1")) model.add(LeakyReLU()) # or whatever activation you want to use model.add(Dropout(0.5)) model.add(Dense(int_dim, n

下面是keras常见问题解答示例[1],我想澄清如何从中间层获得预测。假设我有几个密集的层,有辍学,例如

model = Sequential()
model.add(Dense(out_dim, input_dim=input_dim, name="layer1"))
model.add(LeakyReLU()) # or whatever activation you want to use
model.add(Dropout(0.5))
model.add(Dense(int_dim, name="layer2"))
.... # here we have activation, dropout, etc.
model.add(Dense(lat_dim, name="layerN"))
# at last we add sigmoid and yield probabilities
model.add(Dense(1))
model.add(Activation("sigmoid"))
model.summary()
而且,我有兴趣从layerN得到预测,包括之前的所有层。[1]推荐了几种方法,第一种是构建另一个模型,例如

new_model = Model(inputs=model.input,
                  outputs=model.get_layer("layerN").output)
output = new_model.predict(data)
我的问题是,新模型是采用输入向量,仅从“分层”中进行产量预测,还是将我的输入通过所有层(包括辍学等)传播到“分层”,然后生成预测?如果是前者,是否意味着我需要基本上构建新模型,将所有层作为原始层,直至“分层”

最好的, 瓦伦丁


[1]

是的,您必须构建一个模型,包括您想要作为输出的所有层,这不是自动完成的