九、神经网络-搭建小实战和Sequential的使用
- Sequential容器的作用是将零散的模型层,放入一个容器中进行管理。使得我们在调用的时候直接调用整个Sequential对象,而不需要将所有的模型层进行初始化对象操作。
例如如下的例子所示:
class MM(nn.Module):
def __init__(self):
super().__init__()
self.model =nn.Sequential(
nn.Conv2d(3 ,32 ,5 ,1 ,2),
nn.MaxPool2d(2),
nn.Conv2d(32 ,32 ,5 ,1 ,2),
nn.MaxPool2d(2),
nn.Conv2d(32 ,64 ,5 ,1 ,2),
nn.MaxPool2d(2),
nn.Flatten(),
nn.Linear(64 * 4 *4 ,64),
nn.Linear(64 ,10)
)
def forward(self, x):
x=self.model(x)
return x
如上图所示,在MM中,forward函数调用模型的时候,仅仅只需对model进行初始化对象(而不需要将模型中的每一层都进行初始化对象的操作)
- 附加:如何用tensorboard绘制模型结构图
使用SumarryWriter
writer.SummarryWriter('logs_seq')
writer.add_graph(mm,input) #传入的参数是模型对象和输入的tensor值
writer.close()
运行成功之后就可以在logs_seq目录中看到事件文件了,在终端使用tensorboard运行之后,点击链接即可看到模型结构图:


浙公网安备 33010602011771号