Keras /每层输出

时间:2018-08-07 12:03:52

标签: python machine-learning keras deep-learning

我想查看卷积层之后的输出。

例如,我的模型就像...

  
    

顺序

         

Convolution2D

         

MaxPooling2D

         

Convolution2D

         

MaxPooling2D

         

我想在这里获得输出。

         

扁平化

         

....

  

所以我尝试在调试模式下跟踪keras源代码。

但是我找不到关于做卷积的keras的任何代码。

Keras在其中进行卷积处理的.py文件在哪里?

1 个答案:

答案 0 :(得分:1)

如果要从模型中获取中间输出,则可以构造一个新的Model实例,并将感兴趣的层作为输出张量(或输出张量的列表)传递。

最小工作示例,来自this答案:

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