Насколько я понимаю, при использовании 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
— это «Размеры, до которых будут изменены все найденные изображения». Но я не нашел объяснения того, как выполняется изменение размера.
Он использует параметр 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