作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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()
函数让我很困扰(该函数是通过平均像素做零居中的,看源码就知道了)。
在使用经过训练的模型之前,我真的必须预处理输入数据(验证/测试数据)吗?
一个)如果是,那么可以得出结论,您必须始终了解在训练阶段执行了哪些预处理步骤?!
b)如果否:验证/测试数据的预处理是否会导致偏差?
感谢您的帮助。
最佳答案
是的,您应该使用预处理步骤。您可以在没有它的情况下重新训练模型,但第一层将学习将您的数据居中,因此这是对参数的浪费。
如果你不重新定位,你的表现将会受到影响。
reddit 上的精彩帖子:https://www.reddit.com/r/MachineLearning/comments/3q7pjc/why_is_removing_the_mean_pixel_value_from_each/
关于neural-network - 我是否必须使用神经网络预处理测试数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42838092/
我是一名优秀的程序员,十分优秀!