首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >torch.nn.functional对torch.nn -火炬

torch.nn.functional对torch.nn -火炬
EN

Stack Overflow用户
提问于 2020-09-10 09:03:28
回答 1查看 2K关注 0票数 4

在Pytorch中添加丢失时,我在torch.nn.Functional和torch.nn中都有相同的函数。有什么不同吗?

torch.nn.CrossEntropyLoss()torch.nn.functional.cross_entropy

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-10 10:19:36

PyTorch论坛 @Alban D上发表同样的文章,也给出了类似问题的答案。

损失

损失没有多大区别。nn.functional.xxxnn.Xxx之间的主要区别是,一个有状态,而另一个没有。 这意味着,例如,对于线性层,如果使用函数版本,则需要自己处理权重(包括将它们传递给优化器或将它们移动到gpu),而nn.Xxx版本将使用.parameters().to(device)为您处理所有这些。 对于丢失函数,由于不需要任何参数(一般情况下),您将不会发现有什么不同。除了例如,如果您使用交叉熵和类之间的一些权重,使用nn.CrossEntropyLoss()模块,在创建模块时只会给出一次权重,然后使用它。如果您使用的是功能版本,则每次使用它时都需要传递权重。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63826328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档