【深度学习】【入门】Sequential的使用和简单神经网络搭建
1.Sequential的概念
它是一种按顺序封装神经网络层的容器,能让层按照添加顺序依次执行计算,简化网络搭建流程
2.Sequential的作用
1.代码简洁化
对比不用 Sequential 时手动搭建层的繁琐代码(如每层需手动定义并连接),展示使用 Sequential 后代码的简洁性,减少冗余的变量定义和连接操作
2.结构清晰化
阐述 Sequential 能直观呈现网络的层序结构,让开发者和读者快速理清网络从输入到输出的流程,便于调试和维护
3.框架适配性
说明 Sequential 与主流深度学习框架的高度兼容,无需额外处理层间的连接逻辑,框架会自动完成张量在层间的传递
3.Sequential的核心特征
1.层的顺序性
强调 Sequential 中各层必须按执行顺序添加,前一层的输出维度需与后一层的输入维度匹配,否则会出现维度不兼容错误
2.支持的层的类型
支持绝大多数按顺序执行的网络层
3.与非Sequential搭建方式的区别
与非Sequential相比更灵活、直观
4.Sequential模块及简单神经网络搭建
1.Sequential模块
2.要搭建的神经网络示意图
3.Sequential代码
import torch
from torch import nn
from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear
from torch.utils.tensorboard import SummaryWriterclass Module(nn.Module):def __init__(self):super(Module, self).__init__()self.model = Sequential(Conv2d(3, 32, 5, padding=2),MaxPool2d(2),Conv2d(32, 32, 5, padding=2),MaxPool2d(2),Conv2d(32, 64, 5, padding=2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self,x):x = self.model(x)return xmodule = Module()
print(module)
input = torch.ones((64, 3, 32, 32))
output = module(input)
print(output.shape)writer = SummaryWriter('../logs')
writer.add_graph(module, input)
writer.close()