gpt4 book ai didi

python - 使用 Keras VGG 模型的预期输入范围是多少?

转载 作者:太空狗 更新时间:2023-10-29 21:33:26 27 4
gpt4 key购买 nike

我正在尝试使用来自 keras 的预训练 VGG 16。但我真的不确定输入范围应该是多少。

快速回答,这些颜色顺序中的哪些?

  • RGB
  • BGR

哪个范围?

  • 0 到 255?
  • 从大约 -125 平衡到大约 +130?
  • 0 比 1?
  • -1比1?

我注意到 the file where the model is defined导入输入预处理器:

from .imagenet_utils import preprocess_input

但此预处理器从未在文件的其余部分中使用。

此外,当我检查 code for this preprocessor ,它有两种模式:caffetf (tensorflow)。

每种模式的工作方式不同。

最后,我无法在 Internet 上找到一致的文档。

那么,工作的最佳范围是多少?模型权重训练到什么范围?

最佳答案

模型权重是从 caffe 移植的,所以它在 BGR format 中.

Caffe uses a BGR color channel scheme for reading image files. This is due to the underlying OpenCV implementation of imread. The assumption of RGB is a common mistake.

可以找到原始的caffe模型权重文件on VGG website .此链接也可以在 Keras 文档中找到。

我认为第二个范围是最接近的范围。训练期间没有缩放,但作者减去了 ILSVRC2014 训练集的平均值。如 the original VGG paper 中所述, 第 2.1 节:

The only preprocessing we do is subtracting the mean RGB value, computed on the training set, from each pixel.

这句话其实就是imagenet_utils.preprocess_input(mode='caffe')所做的。

  1. 从 RGB 转换为 BGR:因为 keras.preprocessing.image.load_img() 以 RGB 格式加载图像,所以 VGG16(以及从 caffe 移植的所有模型)需要此转换。
  2. 减去平均 BGR 值:(103.939, 116.779, 123.68) 从图像数组中减去。

预处理器未在 vgg16.py 中使用。它被导入到文件中,以便用户可以通过调用 keras.applications.vgg16.preprocess_input(rgb_img_array) 来使用预处理功能,而无需关心模型权重的来源。 preprocess_input() 的参数始终是 RGB 格式的图像数组。如果模型是使用 caffe 训练的,preprocess_input() 会将数组转换为 BGR 格式。

请注意,preprocess_input() 函数不打算从 imagenet_utils 模块中调用。如果您使用的是 VGG16,请调用 keras.applications.vgg16.preprocess_input(),图像将被转换为适合 VGG16 训练的格式和范围。同样,如果您使用的是 Inception V3,请调用 keras.applications.inception_v3.preprocess_input(),图像将转换为 Inception V3 训练的范围。

关于python - 使用 Keras VGG 模型的预期输入范围是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com