Pytorch系列1: torch.nn.Sequential()讲解
torch.nn.Sequential是一个Sequential容器,模块将按照构造函数中传递的顺序添加到模块中。通俗的话说,就是根据自己的需求,把不同的函数组合成一个(小的)模块使用或者把组合的模块添加到自己的网络中。主要有两种使用方法:# 第一种方法conv_module = nn.Sequential(nn.Conv2d(1,20,5),n...
·
torch.nn.Sequential
是一个Sequential
容器,模块将按照构造函数中传递的顺序添加到模块中。通俗的话说,就是根据自己的需求,把不同的函数组合成一个(小的)模块使用或者把组合的模块添加到自己的网络中。主要有两种使用方法:
# 第一种方法
conv_module = nn.Sequential(
nn.Conv2d(1,20,5),
nn.ReLU(),
nn.Conv2d(20,64,5),
nn.ReLU()
)
# 具体的使用方法
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv_module = nn.Sequential(
nn.Conv2d(1,20,5),
nn.ReLU(),
nn.Conv2d(20,64,5),
nn.ReLU()
)
def forward(self, input):
out = self.conv_module(input)
return out
另一种使用方法:
# 定义方法不一样,使用方法相同
# 我更喜欢用前一种
conv_module = nn.Sequential(OrderedDict([
('conv1', nn.Conv2d(1,20,5)),
('relu1', nn.ReLU()),
('conv2', nn.Conv2d(20,64,5)),
('relu2', nn.ReLU())
]))
torch.nn.Sequential与torch.nn.Module区别与选择
- 使用
torch.nn.Module
,我们可以根据自己的需求改变传播过程,如RNN
等 - 如果你需要快速构建或者不需要过多的过程,直接使用
torch.nn.Sequential
即可。
更多推荐
已为社区贡献2条内容
所有评论(0)