@gth-other

CNN не начинает лучше распозновать изображения после корректировки весов и смещений на последних полносвязных слоях. Так надо или ошибка?

Пишу сверточную нейронную сеть на C++ с нуля (исключительно в образовательных целях). Написал реализацию прямого распространения всех используемых слоев. Написал обратное распространение и корректировку весов со смещениями последних полносвязных слоев, но даже после нескольких полных проходов всего датасета MNIST сетка не начинает лучше распознавать изображения (как было 9-10% так и осталось 9-10%).

Вопрос. Я ошибся в реализации чего-то или для того, чтобы CNN хоть немного лучше стала распозновать изображения недостаточно обучить только последние слои?

P.S. Архитектура используемой CNN:
  • Входящий слой 28x28x1.
  • Сверточный слой 24x24x20.
  • Объединяющий слой 12x12x20.
  • Сверточный слой 8x8x50 .
  • Объединяющий слой 4x4x50.
  • Полносвязный слой 500.
  • Выходящий слой 10.
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Если на свёрточных слоях веса были рандомные, то их тоже надо обучать, а не только последние слоя. Обучают последние слои только когда нейронка уже предобучена и вы хотели бы добавить какой-то новый класс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы