在PyTorch中,我們可以通過在模型的優化器中使用正則化方法來對模型進行正則化。常見的正則化方法包括L1正則化和L2正則化。
對于L1正則化,我們可以在定義優化器時傳入weight_decay參數來指定正則化的系數,例如:
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, weight_decay=0.001)
對于L2正則化,我們也可以在定義優化器時傳入weight_decay參數來指定正則化的系數,例如:
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, weight_decay=0.001)
除了在優化器中定義正則化,我們還可以手動在模型的訓練過程中計算并加入正則化項,例如:
# 定義L2正則化項
l2_reg = torch.tensor(0., requires_grad=True)
for param in model.parameters():
l2_reg += torch.norm(param)
# 定義損失函數,并加入L2正則化項
criterion = nn.CrossEntropyLoss()
loss = criterion(output, target) + lambda * l2_reg
這樣就可以實現對模型的正則化了。