1.BN【batch normalization】
https://zhuanlan.zhihu.com/p/93643523
减少
2.L1L2正则化
l1:稀疏
l2:权重减小
3.泛化误差
训练误差计算了训练集的误差,而泛化误差是计算全集的误差。
4.dropout
训练过程中神经元p的概率失活
一文彻底搞懂深度学习:正则化(Regularization)-CSDN博客
5.train里该有什么
# 设置损失函数和优化器
criterion = torch.nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(
optimizer, mode='min', factor=0.5, patience=patience//4, verbose=True
)
for epoch in range(epochs):
# 训练阶段
model.train()
epoch_loss = 0.0
batch_count = 0
for inputs, targets in train_loader:
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, targets)
loss.backward()
optimizer.step()
//定期验证