理解Keras的ImageDataGenerator类中的`width_shift_range`和`height_shift_range`参数

Keras的ImageDataGenerator类文档中提到——

width_shift_range: 浮点数、一维数组或整数 – 浮点数:如果小于1,则为总宽度的比例;如果大于或等于1,则为像素数。 – 一维数组:从数组中随机选择元素。 – 整数:从区间(-width_shift_range, +width_shift_range)中选择整数像素数 – 当width_shift_range=2时,可能的值为整数[-1, 0, +1],与width_shift_range=[-1, 0, +1]相同,而当width_shift_range=1.0时,可能的值为区间[-1.0, +1.0)内的浮点数。

height_shift_range: 浮点数、一维数组或整数 – 浮点数:如果小于1,则为总高度的比例;如果大于或等于1,则为像素数。 – 一维数组:从数组中随机选择元素。 – 整数:从区间(-height_shift_range, +height_shift_range)中选择整数像素数 – 当height_shift_range=2时,可能的值为整数[-1, 0, +1],与height_shift_range=[-1, 0, +1]相同,而当height_shift_range=1.0时,可能的值为区间[-1.0, +1.0)内的浮点数。

我刚开始学习Keras和机器学习,对此还不太熟悉。

我在理解和使用Keras ImageDataGenerator类的这两个参数width_shift_rangeheight_shift_range时遇到了困难。我搜索了很多,但除了官方文档外,没有找到其他好的文档。这两个参数到底做什么用?什么时候需要使用它们?

在这里讨论这个问题似乎不太合适,但由于互联网上没有任何讨论,我认为在这里讨论会很好。

如果有人能帮助我理解这些,我将不胜感激。非常感谢您。


回答:

ImageDataGenerator类中的这两个参数用于在将图像输入网络之前对其进行预处理。如果你想使模型更加健壮,少量的数据是不够的。这就是数据增强派上用场的地方。这些参数用于生成随机数据。

width_shift_range: 它实际上是将图像向左或向右移动(水平移动)。如果值为float且<=1,它将使用总宽度的百分比作为范围。假设图像宽度为100像素,如果width_shift_range = 1.0,它将使用-100%到+100%,即-100像素到+100像素。图像将在这个范围内随机移动。随机选择的正值将图像向右移动,负值将图像向左移动。我们也可以通过选择像素来实现这一点。如果我们设置width_shift_range = 100,效果将相同。更重要的是,整数值>=1以像素为范围,而浮点值<=1以总宽度的百分比为范围。下面是width_shift_range = 1.0的图像示例。

For value 1

height_shift_range: 它的工作原理与width_shift_range相同,但进行的是垂直移动(向上或向下)。下面是height_shift_range=0.2,fill_mode="constant"的图像示例

enter image description here

fill_mode: 它为输入区域中新移动的像素设置规则。

## fill_mode: 之一 {"constant", "nearest", "reflect" 或 "wrap"}. ## 输入边界之外的点根据给定的模式填充:## "constant": kkkkkkkk|abcd|kkkkkkkk (cval=k)## "nearest":  aaaaaaaa|abcd|dddddddd## "reflect":  abcddcba|abcd|dcbaabcd## "wrap":  abcdabcd|abcd|abcdabcd

更多信息可以查看这个博客

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注