Точность теста не может улучшиться при изучении 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 ответ

Решение

Несколько предложений:

  1. Изменить инициализацию с gauss в xavier,
  2. Работать с "PReLU" ацитвации, а не "ReLU", как только ваша сеть сходится, вы можете в конечном итоге удалить их.
  3. Попробуйте уменьшить base_lr на порядок (или даже на два порядка).
Другие вопросы по тегам