Понимание аргументов width_shift_range и height_shift_range в классе Keras ImageDataGenerator - PullRequest
4 голосов
/ 20 июня 2020

В документации Keras для ImageDataGenerator class говорится:

width_shift_range: Float, 1-D array-like или int - float: доля общей ширины, если <1 , или пикселей, если> = 1. - 1-мерный массив: случайные элементы из массива. - int: целое число пикселей из интервала (-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: Float, 1-мерный массив или int - float: доля от общей высоты, если <1, или пикселей, если> = 1 . - 1-мерный массив: случайные элементы из массива. - int: целое число пикселей из интервала (-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 class с именами width_shift_range и height_shift_range. Я много искал, но не смог найти никакой хорошей документации, кроме официальной. Что именно делают эти два аргумента? Когда их нужно использовать?

Этот разговор может показаться здесь неуместным, но, поскольку нигде не обсуждается inte rnet, я думаю, было бы неплохо провести обсуждение здесь.

Если кто-нибудь поможет мне разобраться в этом, я был бы признателен. Большое спасибо.

1 Ответ

3 голосов
/ 20 июня 2020

Эти два аргумента используются ImageDataGenerator class, которые используются для предварительной обработки изображения перед его отправкой в ​​сеть. Если вы хотите сделать свою модель более устойчивой, небольшого количества данных недостаточно. Вот здесь и пригодится увеличение данных. Это используется для генерации случайных данных.

width_shift_range: Фактически сдвигает изображение влево или вправо (горизонтальный сдвиг). Если значение равно float and <=1, в качестве диапазона будет использоваться процент от общей ширины. Допустим изображение width is 100px. если width_shift_range = 1.0 будет -100% to +100% означает -100px to +100px. Изображение будет произвольно перемещаться между этим диапазоном. Случайно выбранное положительное значение сместит изображение в правую сторону, а отрицательное значение сдвинет изображение влево. Мы также можем сделать это, выбрав пиксели. если мы установим width_shift_range = 100, будет тот же эффект. Что еще более важно integer value>=1 count pixel as range и float value<=1 count percentage of total width as range. Изображения ниже для width_shift_range = 1.0.

For value 1

height_shift_range: It works same as width_shift_range but shift vertically(up or down). Below images are for height_shift_range=0.2,fill_mode="constant"

enter image description here

fill_mode: It sets rules for newly shifted pixel in the input area.

## fill_mode: One of {"constant", "nearest", "reflect" or "wrap"}. 
## Points outside the boundaries of the input are filled according to the given mode:
## "constant": kkkkkkkk|abcd|kkkkkkkk (cval=k)
## "nearest":  aaaaaaaa|abcd|dddddddd
## "reflect":  abcddcba|abcd|dcbaabcd
## "wrap":  abcdabcd|abcd|abcdabcd

For more you can check this блог

...