如何将多个图像输入Keras特征提取?

时间:2017-09-22 21:37:15

标签: python numpy tensorflow keras

以下是Keras文档页面的代码:

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=False)

img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

features = model.predict(x)

这里正在输送一张图片。

我已将一些(12)图像提取到列表中,并将该列表转换为numpy数组。我想将该图像列表提供给Keras特征提取器。

换句话说,我想为它提供多个图像。我怎么能这样做呢?

1 个答案:

答案 0 :(得分:2)

代码中的这一行x = np.expand_dims(x, axis=0)会将单个图像转换为单个图像的数组。所以x的形状将是(1,224,224,3)。

在您的示例中,您已经有12个图像,您将它们保存在numpy数组中。检查你的numpy数组的形状。它必须调整为(12,224,224,3)。通道数可以是1,3或4.然后,您必须预处理它。检查此代码preprocess_input(x)函数中发生的情况。之后,您可以转到model.predict函数。

希望这个答案可以帮到你。