Jump to content
Compvision.ru

Recommended Posts

Добрый вечер. Интересует как можно обучить модель с использованием vgg-16 предобученной? В keras это как говорит @ternaus из ods "делается мизинцем левой ноги". Причем вообще не глядя в монитор.   https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html .

А для Caffe можно так же просто? Интуитивно догадываюсь, что нужно как-то замораживать слои все сверточные и обучать только выход. И еще, например входы vgg-16 224*244*3. Моя сетка запрашивает на вход изображение 256*256. Изменять свою сеть?

Share this post


Link to post
Share on other sites

Я делал в DIGITS, там при создании сетки указывается модель для загрузки (под окошком с текстом модели). Он прогрузит все слои которые имеют то же имя что и в caffemodel файле. Если не нужно их учить, что скорость обучения ставим в 0.

 param {
    lr_mult: 0.0
    decay_mult: 1.0
  }
  param {
    lr_mult: 0.0
    decay_mult: 0.0
  }

и учим, по поводу входного блоба, думаю лучше смастабировать входное изображение до размера входа сети. А после выход смасштабировать обратно. Хотя у меня сейчас вход 600х800 на vgg19 и ничего, учится.

  • Like 1

Share this post


Link to post
Share on other sites
1 час назад, Smorodov сказал:

Он прогрузит все слои которые имеют то же имя что и в caffemodel файле

При этом память GPU больше потребляется,  в отличие от обучения своей сеткой с нуля? В Keras понравилось, что мы предсказываем с VGG-16 в отдельной итерации на трогая память GPU. А тут как?

Share this post


Link to post
Share on other sites

Тут с замороженными слоями тоже меньше памяти лопает и учится быстрее.

Share this post


Link to post
Share on other sites

То есть подход следующий, я правильно понял?
1) загружаем веса

2) Изменяем свою сеть. Объявляем столько слоев из прототипа модели VGG-16 сколько необходимо, в своем прототипе модели. Вот на этом моменте замораживаем добавленные слои. Здесь попрошу подробнее разъяснить. Свои слои при этом выбрасываются? Оставляются только выходы из своей модели?

3) Получили необходимый loss, возвращаем все слои на место? 

Share this post


Link to post
Share on other sites

Я файнтюнил без замораживания слоев просто с learning rate меньше в 10 раз и норм, но возможно это не самое оптимально решение и зависит от кол-ва данных.

Судя по табличке finetuned acc всегда больше получалась

https://github.com/mrgloom/kaggle-dogs-vs-cats-solution

 

Share this post


Link to post
Share on other sites

Как я понял, он читает vgg19.caffemodel  и смотрит совпадают ли названия и свойства слоев, если все совпадает грузятся веса. Прототип сетки уже содержит нужный кусок из VGG19, вот туда и грузятся веса, а все что осталось не тронутым инициализируется случайными числами (надо прописать свойства     weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }

).

Приаттачил свою сетку, которую сейчас мучаю. Там первые слои как раз VGG можно узнать по нулевой скорости обучения.

train_val(1).prototxt

  • Like 1

Share this post


Link to post
Share on other sites

Интересная сетка. Для сегментации? С какой целью делаются множественные crop?

Share this post


Link to post
Share on other sites

Да, для бинарной сегментации, это FCN8s немного переделанная.

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

А потом кропается постепенно.  Хотел еще повороты приделать но питонский слой не осилил, лень пока копаться пока учится вроде нормально.

Share this post


Link to post
Share on other sites

 

7 минут назад, Smorodov сказал:

Хотел еще повороты приделать но питонский слой

На этот счет хочу еще проверить возможно ли будет загружать несколько классов в один модуль, используя один файл, но несколько python layers. Удобно для ошибки и data test aug будет использовать

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×