Тонкая настройка предварительно обученного InceptionResnetV2 - PullRequest
0 голосов
/ 27 апреля 2018

Шаги для тонкой настройки сети следующие:

  1. Добавьте свою собственную сеть поверх уже обученной базы сеть.
  2. Заморозка базовой сети.
  3. Обучите часть, которую вы добавили.
  4. Разморозить некоторые слои в базовой сети.
  5. Совместно обучите оба слоя и часть, которую вы добавили.

Теперь, если сетевая архитектура проста, как VGG16, мы можем просто разморозить базовую сеть с block5_conv1 (Conv2D) и перенастроить ее.

VGG16 Архитектура VGG16 Architecture

Но когда архитектура настолько сложна, как InceptionResnetV2, с чего начать? У кого-нибудь есть практический опыт? Запустите следующий код в python, чтобы увидеть модель:

from keras.applications import InceptionResNetV2

conv_base = InceptionResNetV2(weights='imagenet',
                  include_top=False,
                  input_shape=(299, 299, 3))
conv_base.summary()
from keras.utils import plot_model
plot_model(conv_base, to_file='model.png')`

1 Ответ

0 голосов
/ 26 сентября 2018

Очень простая подстройка модели с InceptionResNetV2 будет выглядеть так:

from inception_resnet_v2 import InceptionResNetV2
# ImageNet classification

model = InceptionResNetV2()
model.predict(...)

# Finetuning on another 100-class dataset
base_model = InceptionResNetV2(include_top=False, pooling='avg')
# The first argument in the next line represents the number of classes
outputs = Dense(100, activation='softmax')(base_model.output)
model = Model(base_model.inputs, outputs)
model.compile(...)
model.fit(...)

Это хорошее место для начала введите описание ссылки здесь

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