直接调用定义就好了要使用的损失函数,但是nn.functional和nn.Module中都有损失函数,至于从哪个包中调用损失函数看你的需求,和图中所说一样,如果没有需要学习的参数就用nn.functional,如果有要学习更新的参数就用nn.Module。
虽然是这样说,但是我看这个代码下面使用的就算是使用functional模块调用的损失函数也是有更新参数的情况。好像说nn.Module是基类的缘故,使用相当于模型整体的损失函数,但是nn.functional可以作为一个独立模块不并入构建的模型内部,这样可以灵活改变调用不影响损失函数灵活性,我也不太清楚,两个都能用后续再看看吧。
上面是一个nn.functional的示例及其使用,下面是nn.Module的示例: