位置: IT常识 - 正文

loss.item()用法和注意事项详解(loss for)

编辑:rootadmin
loss.item()用法和注意事项详解

推荐整理分享loss.item()用法和注意事项详解(loss for),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:loss at,loss at,loss method,loss from,loss at,loss的用法,loss into for,loss=mse,内容如对您有帮助,希望把文章链接给更多的朋友!

.item()方法是,取一个元素张量里面的具体元素值并返回该值,可以将一个零维张量转换成int型或者float型,在计算loss,accuracy时常用到。

作用:

1.item()取出张量具体位置的元素元素值 2.并且返回的是该位置元素值的高精度值 3.保持原元素类型不变;必须指定位置

4.节省内存(不会计入计算图)

import torchloss = torch.randn(2, 2)print(loss)print(loss[1,1])print(loss[1,1].item())

输出结果

tensor([[-2.0274, -1.5974],         [-1.4775,  1.9320]]) tensor(1.9320) 1.9319512844085693

其它:loss = criterion(out, label) loss_sum += loss # <--- 这里

运行着就发现显存炸了,观察发现随着每个batch显存消耗在不断增大…因为输出的loss的数据类型是Variable。PyTorch的动态图机制就是通过Variable来构建图。主要是使用Variable计算的时候,会记录下新产生的Variable的运算符号,在反向传播求导的时候进行使用。如果这里直接将loss加起来,系统会认为这里也是计算图的一部分,也就是说网络会一直延伸变大,那么消耗的显存也就越来越大。

loss.item()用法和注意事项详解(loss for)

正确的loss一般是这样写 

loss_sum += loss.data[0]

其它注意事项:

使用loss += loss.detach()来获取不需要梯度回传的部分。

使用loss.item()直接获得对应的python数据类型。

补充阅读,pytorch 计算图

Pytorch的计算图由节点和边组成,节点表示张量或者Function,边表示张量和Function之间的依赖关系。

Pytorch中的计算图是动态图。这里的动态主要有两重含义。

第一层含义是:计算图的正向传播是立即执行的。无需等待完整的计算图创建完毕,每条语句都会在计算图中动态添加节点和边,并立即执行正向传播得到计算结果。

第二层含义是:计算图在反向传播后立即销毁。下次调用需要重新构建计算图。如果在程序中使用了backward方法执行了反向传播,或者利用torch.autograd.grad方法计算了梯度,那么创建的计算图会被立即销毁,释放存储空间,下次调用需要重新创建。

1,计算图的正向传播是立即执行的。

import torchw = torch.tensor([[3.0,1.0]],requires_grad=True)b = torch.tensor([[3.0]],requires_grad=True)X = torch.randn(10,2)Y = torch.randn(10,1)Y_hat = X@w.t() + b # Y_hat定义后其正向传播被立即执行,与其后面的loss创建语句无关loss = torch.mean(torch.pow(Y_hat-Y,2))print(loss.data)print(Y_hat.data)tensor(17.8969)tensor([[3.2613], [4.7322], [4.5037], [7.5899], [7.0973], [1.3287], [6.1473], [1.3492], [1.3911], [1.2150]])

2,计算图在反向传播后立即销毁。

import torchw = torch.tensor([[3.0,1.0]],requires_grad=True)b = torch.tensor([[3.0]],requires_grad=True)X = torch.randn(10,2)Y = torch.randn(10,1)Y_hat = X@w.t() + b # Y_hat定义后其正向传播被立即执行,与其后面的loss创建语句无关loss = torch.mean(torch.pow(Y_hat-Y,2))#计算图在反向传播后立即销毁,如果需要保留计算图, 需要设置retain_graph = Trueloss.backward() #loss.backward(retain_graph = True) #loss.backward() #如果再次执行反向传播将报错

参考链接:pytorch学习:loss为什么要加item()_dlvector的博客-CSDN博客_loss.item()

https://blog.csdn.net/cs111211/article/details/126221102

本文链接地址:https://www.jiuchutong.com/zhishi/298517.html 转载请保留说明!

上一篇:神经网络模型之BP算法及实例分析(神经网络模型是干嘛的)

下一篇:UNIAPP手机号一键登录(uniapp获取手机通讯录)

  • 10年的运营经验,分享社群运营的6个诀窍和一些小心得!

    10年的运营经验,分享社群运营的6个诀窍和一些小心得!

  • word画图功能在哪里(word里画图工具在哪)

    word画图功能在哪里(word里画图工具在哪)

  • 微信图片怎么压缩成文件发送(微信图片怎么压缩到文件夹)

    微信图片怎么压缩成文件发送(微信图片怎么压缩到文件夹)

  • 不用的淘宝号怎么解绑支付宝(不用的淘宝号怎么解绑手机号)

    不用的淘宝号怎么解绑支付宝(不用的淘宝号怎么解绑手机号)

  • 小米一元流量不能开启(小米一元流量不插卡能用吗)

    小米一元流量不能开启(小米一元流量不插卡能用吗)

  • 为什么苹果ID用不了(为什么苹果ID用QQ邮箱还是和手机号是一个)

    为什么苹果ID用不了(为什么苹果ID用QQ邮箱还是和手机号是一个)

  • 华为mate20显示hd

    华为mate20显示hd

  • 一个手机怎么下载两个微信(一个手机怎么下载两个抖音app)

    一个手机怎么下载两个微信(一个手机怎么下载两个抖音app)

  • 淘宝视频尺寸不符合要求怎么办(淘宝视频尺寸不符合用什么软件修改)

    淘宝视频尺寸不符合要求怎么办(淘宝视频尺寸不符合用什么软件修改)

  • 交管12123显示用户验证失败(交管12123显示用户被停用禁止登录怎么办?)

    交管12123显示用户验证失败(交管12123显示用户被停用禁止登录怎么办?)

  • 抖音下单后为什么查不到订单(抖音下单后为什么查不到订单,抖音付了款没有找到订单)

    抖音下单后为什么查不到订单(抖音下单后为什么查不到订单,抖音付了款没有找到订单)

  • iPhone11边玩边充电伤电池吗(苹果11边充边玩会爆炸吗)

    iPhone11边玩边充电伤电池吗(苹果11边充边玩会爆炸吗)

  • 华为p40返回键怎么设置(华为p40返回键怎么设置到右边)

    华为p40返回键怎么设置(华为p40返回键怎么设置到右边)

  • 微信可见范围怎么设置(微信可见范围怎么变了)

    微信可见范围怎么设置(微信可见范围怎么变了)

  • 苹果录屏时间太长视频不见了(苹果录屏时间太长视频不见了还占据内存,如何删除)

    苹果录屏时间太长视频不见了(苹果录屏时间太长视频不见了还占据内存,如何删除)

  • 纳米技术可以用在哪些地方(纳米技术可以用来修复土壤污染吗)

    纳米技术可以用在哪些地方(纳米技术可以用来修复土壤污染吗)

  • 为什么华为的运动耳机连不上手机(为什么华为的运行内存越来越少)

    为什么华为的运动耳机连不上手机(为什么华为的运行内存越来越少)

  • 相机闪退是什么原因(相机闪退是什么原因relame)

    相机闪退是什么原因(相机闪退是什么原因relame)

  • vivo打完电话挂不了机(vivo手机打电话显示正在挂断怎么办)

    vivo打完电话挂不了机(vivo手机打电话显示正在挂断怎么办)

  • 苹果x有投影仪功能吗(苹果x有投影怎么使用)

    苹果x有投影仪功能吗(苹果x有投影怎么使用)

  • 拼多多三级限制可以提保证金吗(拼多多三级限制保证金可以提现吗)

    拼多多三级限制可以提保证金吗(拼多多三级限制保证金可以提现吗)

  • 乐视手机密码忘记了怎么解锁(乐视手机密码忘了怎么刷机)

    乐视手机密码忘记了怎么解锁(乐视手机密码忘了怎么刷机)

  • 优酷hdr收费吗(优酷hdr另外收费吗?)

    优酷hdr收费吗(优酷hdr另外收费吗?)

  • CPU保养知识,需要注意的事项。(cpu的保养有哪些)

    CPU保养知识,需要注意的事项。(cpu的保养有哪些)

  • js 箭头函数详解(jquery箭头函数)

    js 箭头函数详解(jquery箭头函数)

  • 赠送给客户的库存商品怎么做账
  • 印花税应纳税额计算方法
  • 出口免税产品如何缴纳附加税
  • 个人报销电话费怎么做分录
  • 2019年大写二o一九
  • 医药零售行业 利润构成
  • 工业土地划拨性质有年限吗
  • 环保罚款计入什么会计科目
  • 小规模纳税人计提增值税
  • 收到的扶贫工作经费会计分录
  • 小规模纳税季度申报
  • 哪些人可以享受4050社保补贴
  • win10怎么查看电池健康度
  • win10怎么调出命令行窗口
  • php sybase_fetch_array使用方法
  • 异地存放货物的规定
  • 免抵税额交地方教育附加吗
  • 无偿调入固定资产计提折旧吗
  • 基金管理人业绩报酬分配模式
  • 办公费用减少的原因
  • 重楼的功效与作用价格
  • 苹果最小的充电器是哪一款
  • laravel搭建
  • laravel启动流程
  • uniapp 打开小程序
  • 职工福利费的税收金额怎么填写
  • DOMException: Failed to execute ‘insertBefore‘ on ‘Node‘: The node before which the new node ...报错
  • 购买了金税盘以后怎么使用
  • php输出语法
  • faster rcnn详解
  • php解释器工作流程
  • 苗木增值税税率
  • c++32个关键字详解
  • 企业资本包括
  • 经营租赁会计的核算原则
  • 中间业务收入怎么入账
  • 付了工资的资产负债表怎么填
  • 小企业会计准则和一般企业会计准则的区别
  • 其他债权投资计提减值影响所有者权益吗
  • 机械租赁的主要工作内容
  • 小规模公司购买汽车会计分录
  • 建筑施工企业适用什么会计制度
  • 公司收到拆迁补偿金,于评估公司的区别
  • 递延所得税负债大白话解释
  • 我国现行资源税主要采用什么税率
  • 房屋租赁怎么干
  • 出让价格不得低于基准地价
  • 出租固定资产的折旧计入哪个科目
  • 收购票票样
  • 农业合作社销售农产品怎样纳税
  • 收到境外打电话来怎么办
  • 水电费没有发票可以入账吗
  • 为取得交易性金融资产支付的手续费
  • 宾馆纳税怎么算的
  • 收到专票未抵扣能购买方开红字发票吗
  • 折现率的选择主要是根据什么来判断
  • sql server 存储过程 超时
  • 重装系统注册表会重置吗
  • 以管理员的身份运行是什么意思win10
  • usbmmkbd.exe - usbmmkbd是什么进程
  • centos7修复安装
  • win8怎么关闭系统自动更新
  • opera installer
  • windows7 usb
  • jQuery插件封装时如要实现链式编程,需要
  • node文件目录
  • 创建nodejs项目的步骤
  • dos批处理实例
  • bat批量命名
  • 电脑自动检测硬盘怎么取消
  • Node.js中的全局对象有
  • unity里面如何删除一个项目
  • shell 时间运算
  • 菜鸟 javascript
  • jquery java
  • 安卓动画不流畅
  • 地税局纪检组长黄斌简历
  • 小规模纳税人开专票
  • 国家税务网站官网
  • 广东佛山超市排名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设