2015-09-22 4 views
2

Я тиражирование шаги в http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.htmlтонкой настройки с VGG на CAFFE

Я хочу изменить сеть для модели VGG, которая получается при http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_16_layers.caffemodel

делает это достаточно, чтобы просто заменить модель как указано ниже?

./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights VGG_ISLVRC_16_layers.caffemodel -gpu 0 

Или мне нужно корректировать ставки обучения, итерации, т.е. она приходит с отдельными prototxt файлами?

ответ

5

Должно быть соответствие 1-1 между весами сети, которую вы хотите обучить, и весами, которые вы используете для инициализации/точной настройки. Архитектура старой и новой модели должна соответствовать.

VGG-16 отличается своей архитектурой, чем модель, описанная в моделях/finetune_flickr_style/train_val.prototxt (FlickrStyleCaffeNet). Это сеть, которую решатель попытается оптимизировать. Даже если он не падает, загруженные вами веса не имеют никакого значения в новой сети.

Сеть VGG-16 описана в файле deploy.prototxt на странице this в Cooe's Model Zoo.

+0

Есть ли train_val.prototxt и solver.protxt для VGG? Я не могу найти его, кроме описанного в вашей ссылке, который, как говорят люди, не работает. – ytrewq

+1

Пока не наткнулся на train_val для VGG-16. Глядя на [karpathy's] (https://gist.github.com/ksimonyan/211839e770f7b538e2d8#gistcomment-1403727) train_val, кажется, что прототип несколько устарел. Вы закончите с нулевыми весами, которые не будут меняться во время обучения. Вам нужно будет добавить параметры инициализации по всей сети. Простой вариант - это что-то вроде weight_filler {type: "gaussian" std: 0.01} bias_filler {type: "constant" value: 0}, но я рекомендую проверить документ VGG-16 о том, какая инициатива была использована авторами. – ypx