Neural network nn.Functinal vs nn-Pytorch

Neural network nn.Functinal vs nn-Pytorch,neural-network,pytorch,Neural Network,Pytorch,在pytorch中添加损耗时,我在nn中有相同的函数。Functional和nn一样。有什么区别 torch.nn.CrossEntropyLoss()和torch.nn.functional.cross\u entropyloss从@Alban D中输入相同的文本,给出了类似问题的答案 损失没有多大区别。 nn.functional.xxx和nn.xxx之间的主要区别在于一个有状态,一个没有状态。 这意味着,对于线性层,例如,如果您使用功能版本,您将需要自己处理权重(包括将权重传递给优化器或

在pytorch中添加损耗时,我在nn中有相同的函数。Functional和nn一样。有什么区别

torch.nn.CrossEntropyLoss()
torch.nn.functional.cross\u entropyloss

从@Alban D中输入相同的文本,给出了类似问题的答案

损失没有多大区别。
nn.functional.xxx
nn.xxx
之间的主要区别在于一个有状态,一个没有状态。
这意味着,对于线性层,例如,如果您使用功能版本,您将需要自己处理权重(包括将权重传递给优化器或将权重移动到gpu),而
nn.Xxx
版本将使用
.parameters()
.to(device)
为您完成所有这些操作

对于损失函数,由于不需要参数(通常),您不会发现太多差异。除此之外,例如,如果使用模块在类之间使用交叉熵和一些权重,则在创建模块时只会给出一次权重,然后使用它。如果您正在使用,则每次使用时都需要传递权重