Можем ли мы использовать VGG19 с передачей обучения и другим размером изображения?

#tensorflow #keras #transfer-learning #vgg-net #image-classification

Вопрос:

Я проследил этот действительно хороший пример того,как использовать обучение передаче с помощью VGG19 и классификации изображений «камень,ножницы, бумага»: https://github.com/Nithyashree-2022/VGG-19-for-Rock-Paper-and-Scissors-classification

Я выполнил нормально, и результаты были в порядке.Этот пример работает с изображениями 224х244. Затем я попытался использовать свой собственный набор данных в качестве входных данных с изображениями 256×256 (изображения другого типа, а не ножницы/бумага/камень), поэтому единственное, что я изменил, — это размер изображения (и, конечно, путь к ним). Я изменил все ссылки в коде github с 224 на 256, но больше ничего не казалось обязательным , но результатом было… по-видимому, никакого обучения с набором проверки…

Я имею в виду:

loss_and_accuracy_curves

из эпохи 1.. Кажется, ничему не научился…

ИТАК … есть какие-нибудь идеи, пожалуйста??

Большое спасибо!!

Ответ №1:

Vgg будет работать с размером изображения, отличным от 224 X22 X 3. Убедитесь, что вы вызвали tf.keras.applications.vgg19.preprocess_input на своих входных данных, прежде чем передавать их в модель. vgg19.preprocess_input преобразует входные изображения из RGB в BGR, затем отцентрирует каждый цветовой канал по отношению к набору данных ImageNet без масштабирования. Чтобы помочь в дальнейшем, мне нужно задать код, который вы использовали для создания ваших данных для модели.

Комментарии:

1. Код точно такой же, как в примере github, с изменением 224 на 256 (потому что мои изображения 256×256), поэтому я изменил эти части кода:

2. #IMAGE_SIZE = [224, 224] —> РАЗМЕР ИЗОБРАЖЕНИЯ = [256, 256] для папки в os.listdir(путь к поезду): […] для img в os.listdir(подпространство): […] img_arr=cv2.resize(img_arr,(256,256)) # ИЗМЕНЕН […] training_set = train_datagen.flow_from_directory(путь к поезду, target_size = (256, 256), #ИЗМЕНЕН […])

3. training_set = каталог train_datagen.flow_from_directory(путь к поезду, размер цели = (256, 256), #ИЗМЕНЕН […]) прогноз = Плотный(MY_N_of_CLASES, активация=»softmax»)(x) #ИЗМЕНЕН

4. Исходный код в более «дружественном» виде, чем на github: analyticsvidhya.com/blog/2021/07/…