九、神经网络-搭建小实战和Sequential的使用

小土堆的视频:https://www.bilibili.com/video/BV1hE411t7RN?spm_id_from=333.788.videopod.episodes&vd_source=6cb513d59bf1f73f86d4225e9803d47b&p=22

  • 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运行之后,点击链接即可看到模型结构图:
image

posted @ 2025-04-26 14:26  W-Vicky11  阅读(67)  评论(0)    收藏  举报