简要概括就是:
F.relu
当函数用,nn.ReLU
当模块定义用。
F.relu()
一般在forward
中用,nn.ReLU()
在定义网络结构
的时候用。
比如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import torch.nn as nn import torch.nn.functional as F class NET1(nn.Module): def __init__(self): super(NET1, self).__init__() self.conv = nn.Conv2d(3, 16, 3, 1, 1) self.bn = nn.BatchNorm2d(16) self.re = nn.ReLU() # 模块的激活函数 def foreward(self, x): out = self.conv(x) out = self.bn(x) out = self.re() return out class NET2(nn.Module): def __init__(self): super(NET2, self).__init__() self.conv = nn.Conv2d(3, 16, 3, 1, 1) self.bn = nn.BatchNorm2d(16) def foreward(self, x): out = self.conv(x) out = self.bn(x) out = F.relu(out) # 函数的激活函数 return out net1 = NET1() net2 = NET2() print(net1) print(net2) |
注意:当用print(net)
输出时,会有nn.ReLU()
层,而F.ReLU()
是没有输出的。
本文最后更新于2021年8月15日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
最新评论
6啊
该评论为私密评论
域名卖吗?加个QQ864716046好友,长期收域名,想卖随时可以找我
谢谢分享
WireGuard配置文件还有吗
我是激活的visio2016,里面显示KMS服务器好像是被屏蔽了,最后也会出现错误0xC004F074。试了2次都不行……
学习了。
学习学习了,涨姿势了。