八、神經網絡-線性層及其他層介紹
Linear Layers及其他一些層:

Linear layer的作用:(以self.Linear1=nn.Linear(3072,10)為例)
- 特征降維:原始 3072 維的特征被映射到 10 維。
- 線性變換:利用權重 W 和偏置 b 進行仿射變換,提取輸入數據的全局特征。
- 后續分類或回歸任務:
- 如果 10 是類別數,這可能是一個分類任務(通常會接 Softmax)。
- 如果 10 代表某些連續值特征,這可能是一個回歸任務。
以下為Linear層的示例:
dataset=torchvision.datasets.CIFAR10(root='./dataset', train=False, transform=torchvision.transforms.ToTensor())
dataloader=torch.utils.data.DataLoader(dataset, batch_size=64, shuffle=True,drop_last=True)
class MM(nn.Module):
def __init__(self):
super(MM, self).__init__()
self.Linear1=nn.Linear(3072,10)
def forward(self, x):
output=self.Linear1(x)
return output
mm=MM()
for data in dataloader:
imgs,targets=data
print(imgs.shape)
# output=torch.reshape(imgs,(64,-1)) #和下面這條都行,都是將其進行展平(保持batch大小)
output=torch.flatten(imgs,start_dim=1)
print(output.shape)
output=mm(output)
print(output.shape)
Linear的數學表達式解釋:
self.Linear1 = nn.Linear(3072, 10)是一個全連接層(線性層),輸入維度是 3072,輸出維度是 10。
-
線性變換的數學表達式:

-
其中:
- X 是輸入張量,形狀為 (batch_size, 3072)
- W 是權重矩陣,形狀為 (10, 3072)
- b 是偏置項,形狀為 (10,)
- Y 是輸出張量,形狀為 (batch_size, 10)

浙公網安備 33010602011771號