我正在使用 Keras(2.0.0 版),我想使用预训练模型,例如 VGG16。为了开始,我运行了 [Keras 文档站点][ https://keras.io/applications/]的示例,用于使用 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=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)
使用的preprocess_input()
函数让我感到困扰(该函数通过查看源代码可以看到平均像素以零为中心)。
在使用经过训练的模型之前,我真的需要预处理输入数据(验证/测试数据)吗?
a) 如果是,可以得出结论,您必须始终了解在训练阶段执行了哪些预处理步骤?!
b) 如果不是:验证/测试数据的预处理是否会导致偏差?
我感谢您的帮助。