Точная настройка на MXNet, кроме слоев FC
Я новичок в MXNet, и мне было интересно, если кто-нибудь знает, как точно настроить больше слоев в CNN, кроме только слоев FC. Все примеры, которые я смотрю, имеют тонкую настройку только на слоях FC. В Keras это может быть легко сделано, и больше блоков ConvNets, кроме блока FC, может быть точно настроено: https://github.com/Hvass-Labs/TensorFlow-Tutorials/blob/master/10_Fine-Tuning.ipynb
Если мы хотим отрегулировать только блок FC, мы переводим все слои в false: layer.trainable = False
Если мы хотим отрегулировать больше блоков ConnNet, кроме слоев FC, мы делаем layer.trainable=True для этих слоев: отлаживаем блоки ConvNet в Keras
У меня вопрос как сделать аналогично в MXNet
1 ответ
Ответ зависит от того, используете ли вы императивный (Gluon) или символический API.
Если вы используете императивный (Gluon) API:
Вместо создания gluon.Trainer
со всеми параметрами (net.collect_params()
), вы можете предоставить подмножество тех параметров, которые вы хотите обучить. Любой параметр, которого нет в ParameterDict
Вы перейдете к Тренеру, останетесь замороженными
Если вы используете Symbolic API:
Вы можете использовать fixed_param_names
параметр при создании Module
, Вы можете предоставить регулярное выражение, соответствующее именам параметров, которые вы хотите заморозить. Проверьте этот пример.