如何解决nn.Functinal对比nn-Pytorch
在pytorch中添加损失时,我在nn.Functional和nn中具有相同的功能。有什么区别?
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js"></script>
<div class="tree-diagram"></div>
和std::set
解决方法
从PyTorch discussion forum中输入相同的文本@Alban D已经回答了类似的问题。
F.cross entropy vs torch.nn.Cross_Entropy_Loss
损失没有太大区别。
nn.functional.xxx
和nn.Xxx
之间的主要区别在于,一个有状态,一个没有状态。
举例来说,这意味着对于线性图层,如果使用功能版本,则需要自己处理权重(包括将权重传递给优化器或将权重移至gpu),而nn.Xxx
版本将处理所有权重其中.parameters()
或.to(device)
为您服务。对于损失函数,由于不需要参数(通常),因此不会有太大区别。除非,例如,如果在类之间使用交叉熵,并且使用
nn.CrossEntropyLoss()
模块,则在创建模块然后使用它时,将仅赋予一次权重。如果您使用的是functional version,则每次使用时都需要传递权重。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。