文章预览
作者 | 小新 ,编辑 | 极市平台 来源 | https://lhyxx.top 本文从理论和实践两方面来全面梳理一下常用的损失函数。(避免自己总是一瓶子不满半瓶子晃荡……)。要么理论满分,编码时不会用;要么编码是会调包,但是不明白其中的计算原理。本文来科普一下。 我们将每个损失函数分别从理论和pytorch中的实现两个方面来拆解一下。 另外,解释一下torch.nn.Module 和 torch.nn.functional(俗称F)中损失函数的区别。 Module的损失函数例如CrossEntropyLoss、NLLLoss等是封装之后的损失函数类,是一个类,因此其中的变量可以自动维护。经常是对F中的函数的封装。而F中的损失函数只是单纯的函数。 当然我们也可以自己构造自己的损失函数对象。有时候损失函数并不需要太复杂,没有必要特意封装一个类,直接调用F中的函数也是可以的。使用哪种看具体实现需求而定。
………………………………