#P22 神经网络-损失函数Loss Functions与反向传播backward
#使用起来容易,但是要理解怎么计算的需要有数学功底
#nn_loss.py
import torch
from torch.nn import L1Loss
from torch import nn
#Loss是用于计算实际输出output和目标target之间的差距,衡量误差。根据需求选择不同的Loss function,只需要注意输入的形状shape和输出的形状shape。
#为我们更新输出提供一定的依据(输出.backward反向传播), grad梯度。
#用backward进行反向传播,可以计算出前面神经网络中每一层计算的参数(通过grad梯度),有了这些梯度参数就可以筛选选择合适的优化器,对参数进行优化,对loss实现降低的目的。
inputs = torch.tensor([1, 2, 3], dtype=torch.float32)#真实写代码不需要这种测试预案的话一般用不到dtype
targets = torch.tensor([1, 2, 5], dtype=torch.float32)
inputs = torch.reshape(inputs, (1, 1, 1, 3))
targets = torch.reshape(targets, (1, 1, 1, 3))
#nn.L1Loss
loss = L1Loss(reduction='sum')#reduction默认是mean取平均,也可以设置为sum相加。#mean时L1loss = (0+0+2) /3=0.6
result = loss(inputs, targets)#tensor(2.)
#nn.MSELoss #MSEL是mean squared error平方差
loss_mse = nn.MSELoss()
res
P22 神经网络-损失函数Loss Functions与反向传播backward
于 2024-10-22 04:56:29 首次发布