在PyTorch中,我们可以使用torch.nn模块中的各种损失函数来定义损失函数。以下是一些常用的损失函数及其定义方法:
- 均方误差损失函数(Mean Squared Error,MSE):
criterion = torch.nn.MSELoss()
- 交叉熵损失函数(Cross Entropy Loss):
criterion = torch.nn.CrossEntropyLoss()
- 负对数似然损失函数(Negative Log Likelihood Loss):
criterion = torch.nn.NLLLoss()
- 二分类交叉熵损失函数(Binary Cross Entropy Loss):
criterion = torch.nn.BCELoss()
- KL散度损失函数(Kullback-Leibler Divergence Loss):
criterion = torch.nn.KLDivLoss()
使用时,我们可以在模型训练过程中计算损失并通过优化器来最小化损失函数。例如:
loss = criterion(output, target)
optimizer.zero_grad()
loss.backward()
optimizer.step()