Почему у векторов объектов в выводе модели Keras VGG16 много нулевых значений? - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь извлечь объекты из последнего слоя модели VGG16 в Керасе, используя следующий код:

from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
import numpy as np

model = VGG16(weights='imagenet', include_top=True )


img_path = 'E:\project\KERAS DEEP\poodle.png'
img = image.load_img(img_path, target_size=(224, 224))
img_data = image.img_to_array(img)
img_data = np.expand_dims(img_data, axis=0)
img_data = preprocess_input(img_data)
model.summary()
model.layers.pop();
model.outputs = [model.layers[-1].output]
model.layers[-1].outbound_nodes = []
feature = model.predict(img_data)[0]

переменная объекта предполагает, что это вектор объектов, но в нем много нулей.думать из-за слоя рэлу.Например, в Matlab извлеченный вектор объектов имеет как положительные, так и отрицательные значения, как я могу получить то же самое с моделью keras?

Код Matlab:

im=imread('poodle.png');
im=imresize(im,[224,224]);
net=vgg16;
trainingFeatures = activations(net, im, 'fc7', ...
'OutputAs', 'rows');

два выходных вектора feature и trainingFeatures, как показано ниже (выход Python слева и Matlab справа

Samples from the Keras output enter image description here

А вот и проверенное изображение:

enter image description here

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