Как использовать тонкую настройку среднего уровня в Keras?

Моя задача - адаптировать предварительно обученную сеть из Keras для классификации аэрофотоснимков (у нас есть база данных из 30 категорий аэрофотоснимков, каждая из которых содержит 200-400 изображений). Теперь, что я действительно не понимаю, это следующая часть.

Мы должны использовать точную настройку среднего уровня, используя меньшую базу данных изображений, которая содержит 21 категорию антенн.

Как мне этого добиться?

Должен ли я попытаться настроить меньшую базу данных поверх сети VGG16, а затем сохранить модель и обучить большую базу данных поверх нее?

1 ответ

Решение

Я предполагаю, что они хотят, чтобы вы подстроили обученную модель, заморозив ее первые X слоев и обновив только веса последних нескольких слоев (возможно, только последний, не уверенный, что означает "тонкая настройка среднего уровня")).

Вам нужно взять свою обученную модель и заменить ее последний слой с 30 выходами на новый слой из 21 выхода. Затем вам нужно заморозить все остальные слои (кроме нового) и натренировать модель на новом наборе данных.

В Keras вам просто нужно установить: "trainable=False" для каждого слоя. Как я могу "заморозить" слои Keras?

Другие вопросы по тегам