以下是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特征提取器。
换句话说,我想为它提供多个图像。我怎么能这样做呢?
答案 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
函数。
希望这个答案可以帮到你。