作者:机器视觉全栈er
网站:cvtutorials.com
torch.nn.Sequential:序列容器,顾名思义,就是将构造函数中的子模块会按照你定义的序列顺序被添加到模块中。这里有个注意的小点,要注意区分Sequential和torch.nn.ModuleList,后者就是一个简单的列表,里面的元素是模块,但是模块之间是孤立的,前者则是互相连通的模块。还是以上面的网络模块为例,使用Sequential可以实现快速搭建:
import torch.nn as nn
import torch
class MyModule(nn.Module):
def __init__(self):
super().__init__()
self.layer = nn.Sequential(
nn.Conv2d(1, 3, 3),
nn.ReLU(),
nn.Conv2d(3, 3, 3),
nn.ReLU()
)
def forward(self, x):
x = self.layer(x)
return x
my_module