位置: 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获取手机通讯录)

  • vivo怎么看屏幕使用时间(vivo怎么看屏幕分辨率)

    vivo怎么看屏幕使用时间(vivo怎么看屏幕分辨率)

  • oppo的nfc功能在哪里可以找到(oppo手机nfc功能在哪?)

    oppo的nfc功能在哪里可以找到(oppo手机nfc功能在哪?)

  • 抖音上能私聊吗(抖音上能私聊吗?)

    抖音上能私聊吗(抖音上能私聊吗?)

  • 手机淘宝已付款怎么取消订单(手机淘宝已付款怎么退款)

    手机淘宝已付款怎么取消订单(手机淘宝已付款怎么退款)

  • mate30pro第一次充电多久(华为mate30pro5g第一次充电)

    mate30pro第一次充电多久(华为mate30pro5g第一次充电)

  • 天猫缺斤少两赔付规则(天猫缺斤少两怎么赔偿)

    天猫缺斤少两赔付规则(天猫缺斤少两怎么赔偿)

  • excel向上取整数的公式(excel小数保留整数的方法)

    excel向上取整数的公式(excel小数保留整数的方法)

  • oppo经常接不到电话(oppo接不到短信是怎么回事)

    oppo经常接不到电话(oppo接不到短信是怎么回事)

  • 商家如何查到匿名差评(商家可以看到匿名评价)

    商家如何查到匿名差评(商家可以看到匿名评价)

  • 手机wps语音朗读不见了(手机wps语音朗读怎么换声音)

    手机wps语音朗读不见了(手机wps语音朗读怎么换声音)

  • 6月18日淘宝有没有活动(6月18日淘宝有没有优惠券)

    6月18日淘宝有没有活动(6月18日淘宝有没有优惠券)

  • 爱思助手修改定位错误10(爱思助手修改定位错误码-16)

    爱思助手修改定位错误10(爱思助手修改定位错误码-16)

  • 错误代码10000是什么意思(错误代码100002)

    错误代码10000是什么意思(错误代码100002)

  • 陌陌拉黑对方还有聊天记录吗(陌陌拉黑对方还能收到信息吗)

    陌陌拉黑对方还有聊天记录吗(陌陌拉黑对方还能收到信息吗)

  • 滴滴出行和嘀嗒出行有什么区别(滴滴出行和嘀嗒出行一样吗)

    滴滴出行和嘀嗒出行有什么区别(滴滴出行和嘀嗒出行一样吗)

  • bldc电机什么意思(bldc电机什么意思是皮带吗)

    bldc电机什么意思(bldc电机什么意思是皮带吗)

  • 为什么数据网络特别慢(为什么数据网络会自动关闭)

    为什么数据网络特别慢(为什么数据网络会自动关闭)

  • 超五类屏蔽网线(cat5e超五类屏蔽网线)

    超五类屏蔽网线(cat5e超五类屏蔽网线)

  • 华为p30pro锁屏密码忘了怎么办(华为p30pro锁屏密码)

    华为p30pro锁屏密码忘了怎么办(华为p30pro锁屏密码)

  • 手机为什么不能投屏电视(手机为什么不能截屏)

    手机为什么不能投屏电视(手机为什么不能截屏)

  • 10gbps是几兆网速(10mbps是多少网速)

    10gbps是几兆网速(10mbps是多少网速)

  • ppt中如何设置背景填充效果(ppt中怎么设置背景音乐)

    ppt中如何设置背景填充效果(ppt中怎么设置背景音乐)

  • 快手热度不断是什么意思(快手的热度不断怎么搞)

    快手热度不断是什么意思(快手的热度不断怎么搞)

  • 苹果11有几款型号(苹果11有几款型号,分别多大尺寸)

    苹果11有几款型号(苹果11有几款型号,分别多大尺寸)

  • 华为控制中心在哪里(华为控制中心在哪里设置删除音乐)

    华为控制中心在哪里(华为控制中心在哪里设置删除音乐)

  • word邮件合并功能怎么用(Word邮件合并功能是指)

    word邮件合并功能怎么用(Word邮件合并功能是指)

  • 曲面屏的好处(手机曲面屏的好处)

    曲面屏的好处(手机曲面屏的好处)

  • 个人所得税年终奖单独计税怎么操作
  • 进项税额转出会影响利润吗
  • 企业纳税申报表包括哪些表
  • 主营业务成本大于生产成本
  • 建筑企业收到材料发票没有备注能用吗
  • 材料短缺赔偿会计分录怎么写?
  • 产品成本的归集和分配是什么意思
  • 企业计提工资的操作步骤
  • 营业外收入税前列支
  • 研发支出的台账由谁做
  • 小规模销项负数发票怎么做账
  • 应付账款少付怎么做账
  • 关于工程施工的文章
  • 加计扣除税怎么出分录
  • 低值易耗品的界定标准何时修改的
  • 其他综合收益也要交税吗
  • 给员工支付的房租怎么算
  • 收到汇算清缴的现金
  • 赠品促销怎么做
  • 生物制品可以开箱验货吗
  • 股票收益的计算公式
  • 公司没有营业额零报税的后果
  • 不用指令
  • 挂靠借用资质账务处理?
  • 政府闲置土地
  • echarts地图tooltip
  • 固定资产管理系统多少钱
  • 财政预算单位可以既是省级又是中央
  • 销售方运输发票怎么做账?
  • 购进农产品增值税进项税额的确认方法
  • vue状态管理有哪些
  • php正则函数内容匹配
  • qiankun跨域问题
  • 什么行业需要生产许可
  • mvc框架工作流程
  • 运费已付发票未到会计分录
  • 银行手续费必须有发票才能入账吗
  • python locator
  • java--IO流 ☞ 字节流
  • 织梦生成出现500
  • 商铺转让费的会计分录
  • 番茄开发票属于蔬菜吗?
  • 定额发票验旧日期怎么算
  • 个人申请代开发票流程怎么操作?
  • 利润减负债
  • 销售使用过的固定资产怎么填申报表
  • 个人所得税手续费比例
  • 备用金有发票抵扣吗
  • 企业暂估成本如何确定
  • 进项大于销项会退税吗
  • 现金存银行凭证
  • 开红字发票必须要收回原发票并作废吗?
  • 增值税普通发票可以抵扣多少钱
  • 增值税专用发票和普通发票的区别
  • 资产负债表日指的是什么
  • 工业企业会计和商业企业会计的区别
  • mysql查询语句优先级
  • win7命令提示符怎么打开
  • windows7怎么添加设备
  • win8 开机启动
  • win7无法启动print spooler服务,错误5
  • rftray.exe - rftray是什么进程 有什么用
  • win7系统设置只让安装有证书的软件
  • exe是什么进程
  • mac app store更新软件一直输入密码
  • win7系统关闭自动休眠
  • win7能用多屏协同吗
  • jQuery+Ajax实现无刷新分页
  • cmd更改文件属性
  • js实现滚动条
  • shell函数写法
  • jQuery的 $.ajax防止重复提交的两种方法(推荐)
  • 数组添加数组
  • jQuery UI结合Ajax创建可定制的Web界面
  • 归并代码
  • 重新加载activity
  • 河南省电子税务局官网入口
  • 查询完毕
  • 深圳市百旺信投资有限责任公司
  • 地税局申报个人所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设