使用更多的数据
控制模型复杂度
使用更浅的模型
正则化
optimizer = optim.SGD(net.parameters(),lr = learning_rate,weight_decay = 0.01)
Dropout
torch.nn.Dropout(0.5) 将上一层数据减少一半传播
Data argumentation 数据增强
Early Stopping
momentum 动量 使用只需在优化器中添加momentum参数即可
Adam优化器不需要添加动量 因为他自带
learnning rate decay 动态LR ReduceLROnPlateau(optimzer,‘min‘)
device = torch.device('cuda:0')
net = MLP().to(device) # 将网络切换到GPU上 原地更新
import torch
import troch.nn.Function as F
w1,b1 = torch.randn(200,784,requires_grad=True),torch.zeros(200,requires_grad=True)
w2,b2 = torch.randn(200,200,requires_grad=True),torch.zeros(200,requires_grad=True)
w3,b3 = torch.randn(200,784,requires_grad=True),torch.zeros(200,requires_grad=True)
def forward(x):
x = x@w1.t()+b1
x = F.relu(x)
x = x@w2.t()+b2
x = F.relu(x)
x = x@w3.t()+b3
x = F.relu(x)
return x
原文:https://www.cnblogs.com/rise0111/p/11360982.html