我有CNN模型的代码。但是,我需要模型每一层的输出,并且在编译模型之后通过测试图像。因此,有一种方法可以通过将测试图像作为输入来查看CNN模型每一层的输出。
classifier = Sequential()
classifier.add(Convolution2D(32,3,3, input_shape = (64,64,3),activation =
"relu"))
classifier.add(MaxPooling2D(pool_size = (2,2)))
classifier.add(Convolution2D(64,3,3,activation = "relu"))
classifier.add(MaxPooling2D(pool_size = (2,2)))
classifier.add(Flatten())
我的测试功能是这样:
import numpy as np
from keras.preprocessing import image
test_image = image.load_img('spot.png',target_size = (64,64))
test_image = image.img_to_array(test_image)
test_image = np.expand_dims(test_image,axis = 0)
result = classifier.predict(test_image)
training_set.class_indices
if result [0][0] == 0:
prediction = 'mango_powder'
else:
prediction = 'mango_spot'
print(prediction)
答案 0 :(得分:1)
制作一个可输出所有图层的模型:
inputs = classifier.input
outputs = [classifier.layers[i].output for i in range(len(classifier.layers))]
model = Model(inputs, outputs)
使用此模型来预测与classifier
中将使用的输入相同的输入:
all_layers_predictions = model.predict(images)
在这里,all_layers_predictions
将是一个列表,其中包含每一层的输出。
如果输入层出现在i = 0
中,您可能需要忽略第一层(classifier.summary()