PyTorch中 torch.nn与torch.nn.functional的区别
【摘要】 原文链接 torch.nnpytorch中文文档链接:torch.nn在__init__()函数里定义,定义的是一个类: torch.nn.functionalpytorch中文文档链接:torch.nn.functional在__forward()__函数里定义,定义的是一个函数: 两者的区别torch.nn中是一个定义的类,以class xx来定义的,可以提取变化的学习参数。torch....
torch.nn
pytorch中文文档链接:torch.nn
在__init__()
函数里定义,定义的是一个类:
torch.nn.functional
pytorch中文文档链接:torch.nn.functional
在__forward()__
函数里定义,定义的是一个函数:
两者的区别
torch.nn中是一个定义的类,以class xx来定义的,可以提取变化的学习参数。
torch.nn.functional是一个函数,由def function( )定义,是一个固定的运算公式。
深度学习中会有很多权重是在不断更新的,所以需要采用类的方式,以确保能在参数发生变化时仍能使用我们之前定好的运算步骤。因此如果模型有可学习的参数,应该使用nn.Module,否则两个没有区别。但是简单的计算不需要新建一个类来做,所以使用nn.functional定义函数就可以。
即:层内有variable
的情况用nn
定义,否则用nn.functional
定义。
学习更多编程知识,请关注我的公众号:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)