TorchでClassNLLCriterionを変更したカスタム損失関数を作成したいとします。具体的には、ClassNLLCriterion損失は次のとおりです。Torch基準を変更する
loss(x, class) = -x[class]
私はこれがあることを変更したい:K
はネットワーク入力の機能、NOTネットワークの重みやネットワークの出力である
loss(x, class) = -x[class]*K
。したがって、K
は定数として扱うことができます。
このカスタム条件を実装する最も簡単な方法は何ですか? updateOutput()
機能は簡単ですが、updateGradInput()
機能を変更するにはどうすればよいですか?
基本的に私はカスタム基準を書く必要はありません。 'loss = ClassNLLCriterion:forward()* K'そして次に ' grad = ClassNLLCriterion:backward()* K + loss *(dK/dinput) ' これは正しいですか? – braindead
うんこれも可能です – fonfonx
素晴らしいです。ありがとう! Kが単なる定数(ネットワークパラメータや入力や出力に依存しない)であれば、あなたの答えはどのように変化しますか? – braindead