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

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

结果

相关推荐
The Straggling Crow6 小时前
model training platform
人工智能
爱吃泡芙的小白白6 小时前
突破传统:CNN卷积层(普通/空洞)核心技术演进与实战指南
人工智能·神经网络·cnn·卷积层·空洞卷积·普通卷积
人道领域6 小时前
AI抢人大战:谁在收割你的红包
大数据·人工智能·算法
初恋叫萱萱6 小时前
CANN 系列深度篇:基于 ge 图引擎构建高效 AI 执行图
人工智能
qq_12498707537 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
Coder_Boy_7 小时前
TensorFlow小白科普
人工智能·深度学习·tensorflow·neo4j
L、2187 小时前
CANN 中的图优化技术详解:如何让 AI 模型跑得更快、更省
人工智能
大模型玩家七七7 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
新缸中之脑7 小时前
像画家一样编程
人工智能