Точность теста не может улучшиться при изучении ZFNet на ILSVRC12
Я реализовал самодельный ZFNet ( prototxt) для своих исследований. После 20 тыс. Итераций с определением точность теста остается на уровне ~0,001 (т. Е. 1/1000), потери на тесте на уровне ~6,9 и потери на тренировке на уровне ~6,9, что, по-видимому, в сети продолжает играть в угадайку среди классов 1k. Я тщательно проверил все определение и попытался изменить некоторые гиперпараметры, чтобы начать новое обучение, но безрезультатно, те же результаты, что и на экране...
Кто-нибудь может показать мне немного света? Заранее спасибо!
Гиперпараметры в прототипе получены из статьи [1]. Все входы и выходы слоев кажутся правильными, как показано на рис. 3 в статье.
Твики:
crop
входные данные для обучения и тестирования установлены на225
вместо224
как обсуждено в #33;однопиксельные нулевые отступы для
conv3
,conv4
, а такжеconv5
сделать размеры сгустков согласованными [1];типы заполнителей для всех изучаемых слоев изменены с
constant
в [1] доgaussian
сstd: 0.01
;weight_decay
: меняется от0.0005
в0.00025
как предложено @sergeyk в PR #33;
[1] Зейлер М. и Фергус Р. Визуализация и понимание сверточных сетей, ECCV 2014.
и для бедной части..., я вставил это здесь
1 ответ
Несколько предложений:
- Изменить инициализацию с
gauss
вxavier
, - Работать с
"PReLU"
ацитвации, а не"ReLU"
, как только ваша сеть сходится, вы можете в конечном итоге удалить их. - Попробуйте уменьшить
base_lr
на порядок (или даже на два порядка).