在pytorch中,丢失函数需要在什么情况下继承nn.module?

在pytorch中,丢失函数需要在什么情况下继承nn.module?,pytorch,loss,Pytorch,Loss,我对PyTorch中的损失函数感到困惑。有些人将loss函数定义为普通python函数,而另一些人通过定义继承nn.Module的类来定义loss函数。所以我想知道在什么情况下我们需要通过继承nn.Module来定义损失函数?非常感谢。通常,只有当您希望在该模块中包含可训练变量时,才需要从nn.Module继承,否则继承是可选的 因此,同样的情况也适用于损失函数,如果它不包含此类变量(我假设这是主要情况),则不需要继承。据我所知,“可训练变量”应该在模型中定义。因此,我对损失函数中的“可训练变量

我对PyTorch中的损失函数感到困惑。有些人将loss函数定义为普通python函数,而另一些人通过定义继承nn.Module的类来定义loss函数。所以我想知道在什么情况下我们需要通过继承nn.Module来定义损失函数?非常感谢。

通常,只有当您希望在该模块中包含可训练变量时,才需要从
nn.Module
继承,否则继承是可选的


因此,同样的情况也适用于损失函数,如果它不包含此类变量(我假设这是主要情况),则不需要继承。

据我所知,“可训练变量”应该在模型中定义。因此,我对损失函数中的“可训练变量”感到困惑。你能进一步解释一下损失函数模块中的“可训练变量”吗?如果可能的话,你能给我举个例子吗?非常感谢你!对,这正是我的意思,所以通常对于损失函数,没有这样的变量,也就是说,它只取决于对。因此,如果它不包含这些变量,则无需继承nn.module