深度学习速成:损失函数与反向传播

1.LOSS函数

Loss=(目标值-实际值)的绝对值 +.....之和

1.1作用:

1.计算实际输出与目标之间的关系

2.为我们更新输出提供一定的依据

1.2 举例

1.2.1 torch.nn.L1loss

使用方法:

注意输入输出的shape是相同的

数学公式:

python 复制代码
import torch
from torch import nn


inputs=torch.tensor([1,2,3]).float()#要使用浮点数
targets=torch.tensor([1,2,5]).float()

inputs =torch.reshape(inputs,(1,1,1,3))
targets=torch.reshape(targets,(1,1,1,3))

loss=torch.nn.L1Loss()
ressult=loss(inputs,targets)

print(ressult)

输出为tensor(0.6667) 因为作差后相加再除以3 即三分之二。

1.2.2 torch.nn.MSELoss

python 复制代码
import torch
from torch import nn



inputs=torch.tensor([1,2,3]).float()
targets=torch.tensor([1,2,5]).float()

inputs =torch.reshape(inputs,(1,1,1,3))
targets=torch.reshape(targets,(1,1,1,3))

loss=torch.nn.L1Loss()
ressult=loss(inputs,targets)

loss_mse=torch.nn.MSELoss()
ressult_mse=loss_mse(inputs,targets)

print(ressult,ressult_mse)

输出结果为tensor(1.3333) 也就是三分之四

1.2.3 交叉熵函数

处理分类问题时常用

数学公式:

python 复制代码
x=torch.tensor([0.1,0.2,0.3])
y=torch.tensor([1])

x=torch.reshape(x,(1,3))

loss_ce=nn.CrossEntropyLoss()
result_ce=loss_ce(x,y)
print(result_ce)

输出结果为tensor(1.1019)

2.反向传播

反向传播算法利用链式法则,通过从输出层向输入层逐层计算误差梯度,高效求解神经网络参数的偏导数,以实现网络参数的优化和损失函数的最小化。

计算出loss后对loss进行反向传播(backward)梯度下降法

python 复制代码
Tudui=tudui()

for data in dataloder:
    imgs,targets=data
    outputs=Tudui(imgs)
    result_loss=loss(outputs,targets)
    print("loss:",result_loss.item())
    result_loss.backward()#反向传播

3.优化器

python 复制代码
loss=torch.nn.CrossEntropyLoss()
Tudui=tudui()
optim=torch.optim.SGD(Tudui.parameters(),lr=0.01)#定义优化器 随机梯度下降

for data in dataloder:
    imgs,targets=data
    outputs=Tudui(imgs)
    result_loss=loss(outputs,targets)
    optim.zero_grad()#优化器梯度清零
    result_loss.backward()#反向传播
    optim.step()#优化器更新参数

先定义优化器

得到loss后进行梯度清零 反向传播 优化器更新参数

结果

相关推荐
测试员周周7 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
K姐研究社9 小时前
怎么用AI制作电商口播视频,开拍APP一键生成
人工智能·音视频
LaughingZhu9 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
辰海Coding9 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
晓梦林9 小时前
cp520靶场学习笔记
android·笔记·学习
传说故事9 小时前
【论文阅读】MotuBrain: An Advanced World Action Model for Robot Control
论文阅读·人工智能·具身智能·wam
北京耐用通信10 小时前
全域适配工业场景耐达讯自动化Modbus TCP 转 PROFIBUS 网关轻松实现以太网与现场总线互通
网络·人工智能·网络协议·自动化·信息与通信
火山引擎开发者社区10 小时前
TRAE × 火山引擎 Supabase:为你的 AI 应用装上“数据引擎”
人工智能
weixin_4462608510 小时前
[特殊字符] 视觉Transformer (ViT) 原理及性能突破:从CNN到大规模自注意力机制的迁移
深度学习·cnn·transformer
小a彤10 小时前
GE 在 CANN 五层架构中的位置
人工智能·深度学习·transformer