Фон
Я нахожу довольно много примеров кода, где люди предварительно обрабатывают свои данные изображения либо с помощью rescale=1./255
, либо они используют preprocessing_function
, устанавливая его на preprocess_input
соответствующегомодель, которую они используют в ImageDataGenerator.Сначала я подумал, что использование rescale=1./255
работает только при работе с предварительно обученной моделью vgg16, но я продолжаю видеть примеры, где она используется с предварительно обученным resetnet50, созданием и т. Д.
Пока блог keras (https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html) использует этот подход ...
ImageDataGenerator(rescale=1./255, ...
... в документах Keras (https://keras.io/applications/) используется этот подход:
from keras.applications.vgg19 import preprocess_input
ImageDataGenerator(preprocessing_function=preprocess_input, ...
Я думал, что использование соответствующего preprocess_input соответствующей модели, которую я хочу обучить, всегда лучше, чем использование подхода rescale = 1. / 255, поскольку он будет на 100% отражать предварительную обработку, которая использовалась во времяобучение предварительно обученной модели.
Вопрос
Мне нужно уточнить, когда использовать rescale=1./255
против встроенного keras preprocess_input
соответствующей модели, на которой я хочу тренироваться при предварительной обработке изображенийдля трансферного обучения. Имеет ли это значение только при использовании предварительно обученных моделей, то есть с нагрузкой по сравнению с тренировкой с нуля?