简要概括就是:
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 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!