Каждый слой, требующий обучения (например, созвучный, полностью подключенный и т. Д.), Имеет определенный параметр lr_mult
, который может управляться специально для этого уровня. lr_mult
- это «множитель глобальной скорости обучения для этого параметра».
Просто укажите или измените lr_mult
для вашего слоя в train_val.prototxt
.
Это полезно для точной настройки, где вы можете увеличить скорость обучения только для нового слоя.
Для получения дополнительной информации посетите кафе fine-tuning учебник. (Примечание: это немного устаревшей и устаревшим термином blobs_lr
используется там вместо lr_mult
)
EDIT: Насколько я знаю, что не представляется возможным определить скорость обучения слоя конкретного из solver.prototxt
. Следовательно, если ограничение solver.prototxt
не является строгим, я предлагаю другой метод для достижения того же результата.
OP * специально * спрашивает о методе изменения 'lr_mult' из * solver.prototxt * и NOT из train_val.prototxt. Итак, как ваш пост отвечает на вопрос здесь? – Shai
@shai Я думаю, что ответ, который говорит: «solver.prototxt - это не место для принятия решений на уровне архитектуры, вот как это сделать правильно» - это правильный ответ. Вопрос - это почти проблема X-Y; не мотивируя, почему вам нужно будет принять это решение на решающем уровне, я могу только предположить, что OP не делает что-то разумное здесь –