当前位置: 首页 > news >正文

PyTorch学习笔记:nn.L1Loss——L1损失

PyTorch学习笔记:nn.L1Loss——L1损失

torch.nn.L1Loss(size_average=None, reduce=None, reduction='mean')

功能:创建一个绝对值误差损失函数,即L1损失:
l(x,y)=L={l1,…,lN}T,ln=∣xn−yn∣l(x,y)=L=\{l_1,\dots,l_N\}^T,l_n=|x_n-y_n| l(x,y)=L={l1,,lN}T,ln=xnyn
其中,NNN表示batch size。

函数图像:

在这里插入图片描述

输入:

  • size_averagereduce已经被弃用,具体功能可由reduction替代
  • reduction:指定损失输出的形式,有三种选择:none|mean|sumnone:损失不做任何处理,直接输出一个数组;mean:将得到的损失求平均值再输出,会输出一个数;sum:将得到的损失求和再输出,会输出一个数

注意:

  • 输入的xxxyyy可以是任意维数的数组,但是二者形状必须一致

代码案例

对比reduction不同时,输出损失的差异

import torch.nn as nn
import torchx = torch.rand(10, dtype=torch.float)
y = torch.rand(10, dtype=torch.float)
L1_none = nn.L1Loss(reduction='none')
L1_mean = nn.L1Loss(reduction='mean')
L1_sum = nn.L1Loss(reduction='sum')
out_none = L1_none(x, y)
out_mean = L1_mean(x, y)
out_sum = L1_sum(x, y)
print(x)
print(y)
print(out_none)
print(out_mean)
print(out_sum)

输出

# 用于输入的x
tensor([0.8597, 0.0679, 0.6531, 0.5442, 0.9690, 0.1412, 0.1161, 0.6927, 0.2017, 0.3142])
# 用于输入的y
tensor([0.2538, 0.2823, 0.7768, 0.6710, 0.4303, 0.7249, 0.5897, 0.0048, 0.4121, 0.8169])
# 当reduction设置为none时,输出一个数组
# 该数组上的元素为x,y对应每个元素的绝对值损失,即对应元素做差求绝对值
tensor([0.6059, 0.2143, 0.1237, 0.1268, 0.5387, 0.5837, 0.4737, 0.6879, 0.2103, 0.5027])
# 当reduction设置为mean时,输出所有损失的平均值
tensor(0.4068)
# 当reduction设置为sum时,输出所有损失的和
tensor(4.0677)

注:绘图程序

import torch.nn as nn
import torch
import numpy as np
import matplotlib.pyplot as pltloss = nn.L1Loss(reduction='none')
x = torch.tensor([0]*100)
y = torch.from_numpy(np.linspace(-3,3,100))
loss_value = loss(x,y)
plt.plot(y, loss_value)
plt.savefig('L1Loss.jpg')

官方文档

nn.L1Loss:https://pytorch.org/docs/stable/generated/torch.nn.L1Loss.html#torch.nn.L1Loss

初步完稿于:2022年1月29日

http://www.lryc.cn/news/1503.html

相关文章:

  • Java程序设计-ssm企业财务管理系统设计与实现
  • 疑难杂症篇(二十一)--Ubuntu18.04安装usb-cam过程出现的问题
  • npm-npm i XX --save 和--save-dev
  • 可重构或可调谐微波滤波器技术
  • 医院智能化解决方案-门(急)诊、医技、智能化项目解决方案
  • 判断元素是否在可视区域
  • 告别传统繁杂的采购合同管理 打造企业自动化采购管理模式
  • 【prism】路由事件映射到Command命令
  • 面向对象的基本概念和方法
  • 数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
  • 1.面向对象和类的关系?2.什么是Promise、3.Promise和async、await的关系
  • 【程序化天空盒】过程记录01:日月 天空渐变 大气散射
  • 无线通信中的轨道角动量
  • 以后更新功能,再也不用App发版了!智能小程序将为开发者最大化减负
  • C++之类模板全特化和偏特化
  • Python 手写数字识别 MNIST数据集下载失败
  • 华为机试题:HJ61 放苹果(python)
  • 【论文速递】ICCV2021 - 基于超相关压缩实现实时高精度的小样本语义分割
  • 单例模式(Singleton Pattern)
  • docker file和compose
  • 如何解决thinkphp验证码不能显示问题?
  • Vue极简使用
  • 【Nacos】Nacos配置中心服务端源码分析
  • 第十五章 栅格数据重分类、栅格计算器、插值分析
  • CS5260测试版|CS5260demoboard|typec转VGA参考PCB原理图
  • winform开发心得
  • 学习周报-2023-0210
  • 百度富文本UE的问题集合
  • 在Linux上安装node-v14.17.3和npm-6.14.13
  • 机器学习框架sklearn之特征降维