2015-11-29 10 views
1

Кто-нибудь знает, как изменить скорость обучения lr_mult определенного уровня в CAFFE из прототипа решателя? Я знаю, что есть base_lr, однако я бы хотел настроить таргетинг на определенный уровень и делать это из решателя вместо сетевого прототипа.Как изменить скорость обучения определенного слоя из прототипа решателя (CAFFE)

Спасибо!

ответ

1

Каждый слой, требующий обучения (например, созвучный, полностью подключенный и т. Д.), Имеет определенный параметр lr_mult, который может управляться специально для этого уровня. lr_mult - это «множитель глобальной скорости обучения для этого параметра».

Просто укажите или измените lr_mult для вашего слоя в train_val.prototxt.

Это полезно для точной настройки, где вы можете увеличить скорость обучения только для нового слоя.

Для получения дополнительной информации посетите кафе fine-tuning учебник. (Примечание: это немного устаревшей и устаревшим термином blobs_lr используется там вместо lr_mult)

EDIT: Насколько я знаю, что не представляется возможным определить скорость обучения слоя конкретного из solver.prototxt. Следовательно, если ограничение solver.prototxt не является строгим, я предлагаю другой метод для достижения того же результата.

+0

OP * специально * спрашивает о методе изменения 'lr_mult' из * solver.prototxt * и NOT из train_val.prototxt. Итак, как ваш пост отвечает на вопрос здесь? – Shai

+1

@shai Я думаю, что ответ, который говорит: «solver.prototxt - это не место для принятия решений на уровне архитектуры, вот как это сделать правильно» - это правильный ответ. Вопрос - это почти проблема X-Y; не мотивируя, почему вам нужно будет принять это решение на решающем уровне, я могу только предположить, что OP не делает что-то разумное здесь –