Je souhaite créer une fonction de perte personnalisée dans Torch, qui est une modification de ClassNLLCriterion. Concrètement, la perte ClassNLLCriterion est:Critère de torche de modification
loss(x, class) = -x[class]
Je veux modifier ce soit:
loss(x, class) = -x[class]*K
où K
est fonction de l'entrée du réseau, pas le poids du réseau ou réseau de sortie. Ainsi, K
peut être traité comme une constante.
Quelle est la manière la plus simple de mettre en œuvre ce critère personnalisé? La fonction updateOutput()
semble simple, mais comment puis-je modifier la fonction updateGradInput()
?
Donc, essentiellement, je n'ai pas besoin d'écrire un critère personnalisé. Dans mon code d'entraînement, je peux simplement faire: 'loss = ClassNLLCriterion: forward() * K' puis ' grad = ClassNLLCriterion: arrière() * K + perte * (dK/dinput) ' Est-ce correct? – braindead
Ouais c'est aussi possible – fonfonx
Génial. Merci! Une autre question, si K est simplement une constante (ne dépend pas des paramètres réseau ou de l'entrée ou de la sortie), comment votre réponse changerait-elle dans ce cas? – braindead