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

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后进行梯度清零 反向传播 优化器更新参数

结果

相关推荐
_Jimmy_3 分钟前
Agent 溯源精度提升方案
人工智能·python·langchain
老猿AI洞察23 分钟前
7月29日热点:AI越狱事件引发行业安全反思
人工智能·安全
用户9385156350739 分钟前
从零构建《天龙八部》知识库:EPUB 加载→文本分割→向量嵌入→Milvus 存储→RAG 问答,一条链路打通
javascript·人工智能·全栈
Muscleheng1 小时前
Spring Boot 3.x 集成 DeepSeek 实现 Function Calling(工具调用)
人工智能·spring boot·后端·ai·spring ai·deepseek
犀利豆1 小时前
Claude Code Tools 研究系列-前置篇(tool 机制)
人工智能
阿里云大数据AI技术1 小时前
AI Native, Now|阿里云 Milvus AI Function,从能力集成走向产品化落地
人工智能
西柚研究生1234561 小时前
创建自己的数据集(GoogLeNet)
深度学习·神经网络·cnn
熊猫钓鱼>_>1 小时前
ArkTS 装饰器总览:V1 / V2 / 通用装饰器完整学习笔记
笔记·学习·华为·交互·harmonyos·arkts·arkweb
阿三08122 小时前
跨境电商售后自动化分级标准:哪些能全自动、哪些半自动、哪些禁止自动化
大数据·人工智能·自动化