Если я правильно понимаю, у вас есть 3 вида лосс функций, первый, как я понимаю, это обычный CrossEntropyLoss, второй - это Angular Margin Softmax Loss, третий - что-то еще. Если все так - то можно сделать просто:
близко, два вида, один кросс энтропи а второй который как бы состоит из двух факторов, которые как раз если бы можно было легко разделить, то было бы удобно сделать один + другой на 0.1.
ну вот либо с переписью функции backward с каким нибудь if то град разделить на 10 else как обычно. Либо иначе, этот фактор проявляется только на части бэкпэса через am loss, он не явный.
нет. Но am_loss, его граф градиентов, это и голубой и синий (который проходит там же где зеленый). А надо градиенты только на голубом в 10 раз умножить. А еще это одни и те же параметры, поэтому .grad/10 двойное влияние даст. Просто в точре юзеру не дали интерфейс и более того сам граф градиентов не создали как отдельный объект с интерфейсом для BFS, DFS например, по мне это не самый эффективный способ создать пару .grad и BackFunc(). В таких манипуляциях, которую я хочу сделать немного безтолковая реализация.