对输入采用正则化,加快神经网络的训练速度
torch.nn.BatchNorm2d(num_features,eps,momentum=0.1,affine=True,track_running_stats=True)
num_features: 是通道数channel
2.Linear Layers 线性层torch.nn.Linear(in_features,out_features,bias=True)
in_features:输入层神经元个数
out_features:输出层神经元个数
bias:true 有偏置
代码示例:
import torch
import torchvision.datasets
from torch import nn
from torch.nn import Linear
from torch.utils.data import DataLoader
dataset=torchvision.datasets.CIFAR10("dataset",train=False,transform=torchvision.transforms.ToTensor(),download=True)
dataloader=DataLoader(dataset,batch_size=64,drop_last=True)
class Tudui(nn.Module):
def __init__(self) -> None:
super().__init__()
self.linear1=Linear(196608,10)#输入神经元数196608,输出神经元数10
def forward(self,input):
output=self.linear1(input)
return output
tudui=Tudui()
step=0
for data in dataloader:
imgs,targets=data
print(imgs.shape)
#output=torch.reshape(imgs,(1,1,1,-1))#torch.Size([1, 1, 1, 196608]) 将输入展成一行
output=torch.flatten(imgs)#将输入展成1行
print(output.shape)
output=tudui(output)#最后一个batch的数据里只有49152个,所以最后一个batch linear1输入格式不对
print(output.shape)
3.Dropout layers
介绍:在训练过程中随机将输入元素设为0,变成0的概率按照某个概率P
作用:防止过拟合



