Понимание аргументов `width_shift_range` и `height_shift_range` в классе Keras ImageDataGenerator

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

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

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

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


person Arafat Hasan    schedule 20.06.2020    source источник
comment
Это хороший вопрос, не парься :)   -  person ruohola    schedule 20.06.2020


Ответы (1)


Эти два аргумента используются 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.

Для значения 1

height_shift_range: работает так же, как width_shift_range, но смещается по вертикали (вверх или вниз). Ниже изображения для height_shift_range=0.2,fill_mode="constant"

введите здесь описание изображения

fill_mode: устанавливает правила для нового сдвинутого пикселя в области ввода.

## 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

Дополнительную информацию можно найти в этом блоге.

person Sayed Sohan    schedule 20.06.2020