八、神经网络-线性层及其他层介绍
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号