что произойдет, если я установлю размер ввода 32,32 - PullRequest
0 голосов
/ 20 апреля 2019

Я хочу тренировать MNIST на VGG16.

Размер изображения MNIST составляет 28 * 28, и я установил размер ввода 32 * 32 в кератах VGG16. Когда я тренируюсь, у меня хорошие показатели, но я не уверен, что на самом деле происходит. Керас заполняется пустым пространством или изображение расширяется линейно, как в функции масштабирования? Кто-нибудь понимает, как я могу получить точность теста + 95% после 60 эпох?

Здесь я определяю целевой размер:

    target_size = (32, 32)

Здесь я определяю свой генератор flow_from_dataframe:

train_df = pd.read_csv("cv1_train.csv", quoting=3)

train_df_generator = train_image_datagen.flow_from_dataframe(
    dataframe=train_df,
    directory="../../../MNIST",
    target_size=target_size,
    class_mode='categorical',
    batch_size=batch_size,
    shuffle=False,
    color_mode="rgb",
    classes=["zero","one","two","three","four","five","six","seven","eight","nine"]
) 

Здесь я определяю свой размер ввода:

model_base = VGG16(weights=None, include_top=False, 
             input_shape=(32, 32, 3), classes=10)

1 Ответ

0 голосов
/ 20 апреля 2019

Размер изображения будет просто изменен до указанного target_size.Это было четко указано в документации :

target_size: кортеж целых чисел (height, width), по умолчанию: (256, 256).Размеры, к которым будут изменены все найденные изображения.

Вы также можете проверить исходный код и найти соответствующую часть в функции load_img.Также для интерполяции изображений по умолчанию используется метод интерполяции nearest.Вы можете найти больше информации о различных методах интерполяции здесь (MATLAB) или здесь (PIL).

...