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

  • 华为手机个人热点密码在哪里设置(华为手机个人热点怎么设置一个人使用)

    华为手机个人热点密码在哪里设置(华为手机个人热点怎么设置一个人使用)

  • 中国联通叠加套餐包怎么取消(中国联通叠加套餐)

    中国联通叠加套餐包怎么取消(中国联通叠加套餐)

  • 苹果12pro max支持多少w快充(苹果12pro max支持灵动岛吗)

    苹果12pro max支持多少w快充(苹果12pro max支持灵动岛吗)

  • 苹果8p怎么装两张卡(苹果8p怎么装两个手机卡)

    苹果8p怎么装两张卡(苹果8p怎么装两个手机卡)

  • vivo x6s A彩铃怎么设置(vivo彩铃怎么设置自己的歌免费)

    vivo x6s A彩铃怎么设置(vivo彩铃怎么设置自己的歌免费)

  • qq课程回放多久生成(qq课堂回放有时间限制吗)

    qq课程回放多久生成(qq课堂回放有时间限制吗)

  • 红米k20屏幕素质(红米k20屏幕占比多少)

    红米k20屏幕素质(红米k20屏幕占比多少)

  • 正在重新启动很久了(正在重新启动很慢怎么办)

    正在重新启动很久了(正在重新启动很慢怎么办)

  • 苹果x桌面能横屏吗(苹果x桌面横屏不过来)

    苹果x桌面能横屏吗(苹果x桌面横屏不过来)

  • 大王卡看快手免流量吗(大王卡看快手免流量标志)

    大王卡看快手免流量吗(大王卡看快手免流量标志)

  • 更新appleid设置是什么意思(更新appleid设置更新不了怎么办)

    更新appleid设置是什么意思(更新appleid设置更新不了怎么办)

  • 步步高与优学派的区别(步步高与优学派家教机的利与弊)

    步步高与优学派的区别(步步高与优学派家教机的利与弊)

  • cpu带h是什么意思啊(cpu带h是什么意思)

    cpu带h是什么意思啊(cpu带h是什么意思)

  • 企鹅影院和腾讯视频一样吗(企鹅影院和腾讯会员通用吗)

    企鹅影院和腾讯视频一样吗(企鹅影院和腾讯会员通用吗)

  • 大二芯能插大三芯吗(大2芯和大3芯)

    大二芯能插大三芯吗(大2芯和大3芯)

  • 怎么取消淘宝隐藏评论(怎么取消淘宝隐私包裹)

    怎么取消淘宝隐藏评论(怎么取消淘宝隐私包裹)

  • ai文件怎么转成psd(ai文件怎么转成ppt)

    ai文件怎么转成psd(ai文件怎么转成ppt)

  • 手机怎么设置紧急呼叫(手机怎么设置紧急报警电话)

    手机怎么设置紧急呼叫(手机怎么设置紧急报警电话)

  • 拼多多评论怎么看不到(拼多多评论怎么加好友)

    拼多多评论怎么看不到(拼多多评论怎么加好友)

  • qq空间相册回收站密码怎么解除(qq空间相册回收站删除怎么恢复)

    qq空间相册回收站密码怎么解除(qq空间相册回收站删除怎么恢复)

  • 充满电后不拔继续充会有什么危害(充满电不拔充电器会怎么样)

    充满电后不拔继续充会有什么危害(充满电不拔充电器会怎么样)

  • Win7系统剑灵怎么才能双开的方法(剑灵2.0win7)

    Win7系统剑灵怎么才能双开的方法(剑灵2.0win7)

  • 帝国cms怎么调用网络视频播放地址(帝国cms如何使用)

    帝国cms怎么调用网络视频播放地址(帝国cms如何使用)

  • 个人独资企业是否享受六税两费政策
  • 如何计算土地增值税的增值额
  • 给客户开增值税专用发票
  • 计提本月短期借款利息是权责发生制吗
  • 完税证明可以重复打印吗
  • 受雇于两家公司个税怎么汇算清缴
  • 电子税务局自然人如何注册
  • 会计报废怎么处理
  • 收到厂家给医药的短信
  • 预提费用账户期末
  • 银行承兑汇票到期日后多久可以承兑
  • 买车时的保险包括哪些费用,多少钱
  • 无形资产摊销起止时间
  • 单位定期存款如遇利率调整,不论调高调低
  • 公司先注册实收资本后付账该如何做会计处理呢?
  • 个人投资借款长期不还要缴纳个人所得税吗?
  • 开出增值税普通发票需要交税吗
  • 三证合一办完后的流程
  • 银行开户存入的钱怎么取
  • 未分配50g
  • 企业所得税减免政策2023
  • 公司买结构性存款算投资吗
  • 收到承兑后背书怎么处理
  • 淘宝店铺毛利率多少是正常
  • 简易办法计税销售额如何填写
  • 支付设备定金会退回吗
  • 本期填写的适用3减1政策的本期发生额大于
  • 领用原材料业务
  • 公司支付货款怎么做账
  • 如何关闭win10专业版自动更新
  • 异构图神经网络 电影推荐
  • 以银行存款交纳欠缴税金会计分录
  • php文字转语音源码
  • 收回已确认的坏账准备为什么在贷方
  • 出口免抵增值税是什么意思
  • 收到证券公司异常交易
  • css spirit
  • 最新windows11安装要求
  • typescript is as
  • php jquery
  • 租金没有发票可以退税吗
  • mysql事务引擎
  • java中的static用法
  • pythongui库
  • 担保公司代偿会上征信嘛
  • 出口退税率为0要补增值税吗
  • 税额和税款是一回事吗
  • 自然人独资的有限责任公司交什么税
  • sql纵表转横表
  • 小规模交社保有人数限制吗
  • 银行本票与银行汇票的区别之一是
  • 劳动仲裁的调解书可以撤销吗
  • 有限合伙企业的税收筹划
  • 采购商品未入库已经付款会计分录
  • 固定资产改造多少直接进费用
  • 收到客户预付款会计分录
  • 开发成本计入现金流量表
  • 购货方享受现金折扣增值税
  • 大额往来款项的认定
  • 货款还没收到有违法所得吗
  • 问答:分支机构是否需要设立账簿
  • linux如何替换
  • bios是什么怎么设置
  • win10提示测试模式
  • 怎么更改win7
  • win10周年更新版是什么意思
  • mac osx 10.8
  • centos7(core)
  • win7如何设置电脑输入法
  • Win10锁屏壁纸怎么换
  • win7筛选键
  • nodejs 获取文件名
  • 2015-04-04---CCAction详解(欠了大家好几天了)
  • windows恢复版本
  • node 进程
  • 网管系统怎么用
  • python多线程作用
  • 西安市交房要交多少钱
  • 个人所得税代扣代缴手续费返还政策
  • 增值税电子普通发票和普通发票区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设