Loss function和Cost function的区别

本文讲述了Lossfunction和Costfunction在深度学习中的区别,前者用于单个样本的误差测量,后者是整个数据集的平均误差度量。通过优化器如SGD调整模型参数以最小化Costfunction。示例代码演示了如何使用CrossEntropyLoss和优化过程。
摘要由CSDN通过智能技术生成

Loss functionCost function都是用来度量模型预测结果和实际结果之间的差距。

区别在于:

Loss function是针对单个样本的预测误差的度量

Cost function是针对整个数据集的预测误差的度量


Cost function是将所有训练样本的Loss function值相加,并取平均值得到的总体误差度量,Cost function的目的是最小化整个数据集上的误差。可以将Cost function看作是对模型在整个数据集上的性能评估,而Loss function则是计算单个样本预测误差的度量。在训练过程中,通过不断调整模型参数,目标是最小化Cost function的值,从而使模型在整个数据集上的预测误差最小化。

可以通过代码来理解一下:

model = Model()
celoss = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

for epoch in range(20):
    cost_sum = 0.0
    for data in dataloader:
        imgs, targets = data
        outputs = model(imgs)
        loss = celoss(outputs, targets)
        optim.zero_grad()               # 1. 优化器清零
        loss.backward()                 # 2. 反向传播求梯度
        optimizer.step()                # 3. 优化器调参
        cost_sum = cost + loss
    print(cost)
  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值