Оптимизатор MXNet AdamW
Оптимизатор Адама имеет недостатки при использовании со снижением веса. В 2018 году был предложен оптимизатор AdamW.
Есть ли стандартный способ реализовать AdamW в структуре MXNet (реализация на Python)? Там естьmxnet.optimizer.Adam
класс, но нет mxnet.optimizer.AdamW
один (зарегистрировался mxnet-cu102==1.6.0
, mxnet==1.5.0
версии пакета).
PS Я задавал эти вопросы на форуме MXNet и на datascience.stackexchange.com, но безрезультатно.
1 ответ
Краткий ответ: пока нет стандартного способа использования AdamW в Gluon, но есть некоторые работы в этом направлении, которые позволили бы относительно легко добавить его.
Более длинный ответ:
Люди очень много просили об этой функции:) См.: https://github.com/apache/incubator-mxnet/issues/9182
Gluon-NLP имеет рабочую версию AdamW, возможно, немного отличающуюся от той, что была в исходной статье: https://github.com/eric-haibin-lin/gluon-nlp/blob/df63e2c2a4d6b998289c25a38ffec8f4ff647ff4/src/gluonnlp/optimizer/bert_adam.py
В
adamw_update()
Оператор был добавлен с этим запросом на перенос: https://github.com/apache/incubator-mxnet/pull/13728 Он впервые выпущен в MXNet 1.6.0.К сожалению, похоже, что нет возможности использовать это с
gluon.Trainer
прямо сейчас, без копирования / измененияBERTAdam
код (или написать что-то подобное с нуля). Было бы неплохо добавить к Gluon.
Пожалуйста, дайте мне знать, если у вас это сработает, так как я бы тоже хотел иметь возможность использовать это.