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()