Как изменяется размер изображения в ImageDataGenerator

Насколько я понимаю, при использовании tensorflow keras мы можем передавать данные из каталогов с помощью ImageDataGenerator. Когда данные поступают, их размер изменяется на target_size. Но как осуществляется это преобразование?

Пример такой:

from tensorflow.keras.preprocessing.image import ImageDataGenerator
trainDir = 'train'
dataGen = ImageDataGenerator(rescale=1/255)
gen = dataGen.flow_from_directories(
  trainDir,
  batch_size=64,
  target_size=(150, 150),
  class_mode='binary'
)

Здесь все изображения из trainDir будут изменены до 150x150. Но как они изменяются?

Я проверил документацию по Tensorflow ImageDataGenerator. В нем только говорится, что target_size — это «Размеры, до которых будут изменены все найденные изображения». Но я не нашел объяснения того, как выполняется изменение размера.

Udacity Nanodegree Capstone Project: Классификатор пород собак
Udacity Nanodegree Capstone Project: Классификатор пород собак
Вы можете ознакомиться со скриптами проекта и данными на github .
0
0
2 521
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Он использует параметр interpolation, когда target_size отличается от размера входного изображения. По умолчанию используется метод интерполяции nearest, но можно использовать и другие.

Источник: https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator

ImageDataGenerator имеет параметр fill_mode. Этот параметр может быть установлен следующим образом

One of {"constant", "nearest", "reflect" or "wrap"}. Default is 'nearest'. 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
frankly I have no idea what the above is intending to illustrate

Другие вопросы по теме