在PyTorch中,卷积神经网络(CNN)的损失函数主要用于衡量模型预测输出与真实标签之间的差异,是训练过程中的关键组成部分。以下是一些常用的损失函数及其在CNN中的应用:
以下是一个使用torch.nn.CrossEntropyLoss的代码示例,展示了如何在PyTorch中应用这个损失函数:
import torch import torch.nn as nn # 假设我们有一个单标签分类问题 num_classes = 10 batch_size = 32 # 随机生成输入数据 inputs = torch.randn(batch_size, num_classes) # 随机生成目标数据 targets = torch.randint(0, num_classes, (batch_size,)) # 创建损失函数实例 criterion = nn.CrossEntropyLoss() # 计算损失 loss = criterion(inputs, targets) print(f"Calculated loss: {loss.item()}") 在选择损失函数时,应考虑任务的类型、数据的标签格式以及损失函数的性质。例如,对于不平衡的数据集,可以考虑使用加权损失函数来平衡不同类别的影响。