Каково влияние изменения размера изображения и конфигурации последних плотных слоев на производительность передаточного обучения (VGG, Re sNet) для классификации - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь построить модель классификации спама, используя tf2.0 и Keras для проекта. Это должна быть очень хорошая модель, и я хочу повысить ее точность. Спам-изображениями могут быть любые изображения в мире, кроме написанного от руки вопроса или изображения вопроса, например это или this . У меня есть почти 300000 изображений каждой категории, поэтому я хочу переобучить модель со случайными весами, потому что изображения вопросов не были включены в данные imag enet, а у меня достаточно данных. Пожалуйста, подскажите, следует ли мне использовать веса imagenet вместо . Я хочу улучшить характеристики своей модели. У меня есть примерно такая модель:

res_net = ResNet50(include_top=False,weights=None,input_shape=(224,224,3)) # will try VGG and other models too if needed

av1 = GlobalAveragePooling2D()(res_net.output)

fc1 = Dense(1024,activation='relu')(av1)
fc2 = Dense(512,activation='relu')(fc1)
fc3 = Dense(256,activation='relu')(fc2)
d1 = Dropout(0.5)(fc3)

fc4 = Dense(1,activation='sigmoid')(d1)

model = Model(inputs=res_net.input, outputs= fc4)

Qusetions :

Мои изображения являются изображениями вопросов, а ширина в большинстве случаев больше высоты, поэтому я изменяю размер все изображения в (224,224) или в min(width or height) во всем наборе данных (но это может подавить детали для больших изображений)?

Я знаю, что использование плотных слоев до меня, но я не могу используйте все возможные комбинации units и number of layers из-за очевидных ограничений по времени, памяти и мощности. Итак, если я использую много плотных слоев / блоков, не буду ли я переоснащать свою модель, поскольку в этих архитектурах giganti c уже много слоев?

Должен ли я использовать 3 канала или 1? Изображения вопросов в основном черные с белым фоном, поэтому обучение будет быстрым, но 3 канала могут дать лучшие результаты IMO ??

1 Ответ

0 голосов
/ 13 июля 2020

Если вы создаете нестандартную архитектуру, вы можете иметь любое измерение, как sh. Но для уже построенной архитектуры размер изображения фиксированный. В Keras вы можете посетить каждую модель из Ссылка на приложение Keras , чтобы проверить требуемые размеры.

Плотный слой зависит от вас. Если вы выберете большее количество нейронов, то модель может не вписаться в ваш GPU. Или, если вы выберете слишком маленькое количество нейронов, обучение будет не очень точным. Однако, если вы используете уже построенную модель, два или три полностью связанных слоя вполне подойдут.

Если вы используете предварительно обученные веса из imag enet, вы должны выбрать 3 канала, в противном случае можно использоваться. Но я бы сказал go на троих и воспользовался трансферным обучением. Несмотря на то, что у вас много данных, все же использовать веса imag enet - это хорошо. Go для трансферного обучения, повторно обучил их вместо тонкой настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...