我想查看卷积层之后的输出。
例如,我的模型就像...
顺序
Convolution2D
MaxPooling2D
Convolution2D
MaxPooling2D
我想在这里获得输出。
扁平化
....
所以我尝试在调试模式下跟踪keras源代码。
但是我找不到关于做卷积的keras的任何代码。
Keras在其中进行卷积处理的.py文件在哪里?
答案 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