Как напечатать вывод каждого слоя модели CNN после передачи изображения - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть код для модели 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)

1 Ответ

0 голосов
/ 11 февраля 2019

Создайте модель, которая выводит все слои:

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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...