报错解决方案- backward
admin
2024-03-27 02:33:39
0

今天写代码的时候出现了这样的报错:
RuntimeError: Trying to backward through the graph a second time (or directly access saved tensors after they have already been freed). Saved intermediate values of the graph are freed when you call .backward() or autograd.grad(). Specify retain_graph=True if you need to backward through the graph a second time or if you need to access saved tensors after calling backward.
大概的意思就是,反向传播的时候计算图被释放了,不能backward,但是我的代码中只有一个backward啊,后来查找了一些资料,对于pytorch计算图有了新的认识
这里有几篇好的博文可以供大家参考一下:
https://blog.csdn.net/weixin_44618906/article/details/107435076
https://blog.csdn.net/rothschild666/article/details/124170794
https://blog.csdn.net/xiecheng1995/article/details/118296092

总结一下:一个变量加入到计算图之后,他就会一直存在与计算图中,我们使用的backward()会将梯度适释放掉,但是计算图的连接仍旧会保存,这个时候由于某个值在每个batch或者epoch都出现的时候,在第二个batch或者第二个epoch就会出现这个错误
(自己根据自己的错误总结的,不是很确定对不对,如果有不对的希望大家能够指出,互相学习)
然后说一下我的问题,我是在写SNN(脉冲网络)的时候遇到这个问题的,后来经过网上的学习,觉得可以是初始的阈值电压由于没有被重置,导致了链式求导,所以查找资料使用LIFNode类中的.reset()方法

def reset_net(net: nn.Module):""":param net: 任何属于 ``nn.Module`` 子类的网络:return: None将网络的状态重置。做法是遍历网络中的所有 ``Module``,若含有 ``reset()`` 函数,则调用。reset()函数即是LIFNode类中的方法"""for m in net.modules():if hasattr(m, 'reset'):m.reset()

在参数更新后重置模型的初始阈值电压

loss.backward()  
optimizer.step()  
reset_net(model)

相关内容

热门资讯

黄金ETF持仓量报告解读(20... 截至7月23日,全球最大的黄金ETF SPDR Gold Trust持仓量为1009.298吨,较前...
珠宝店银回收有哪些行业通用标准 首饰加工行业金属废料处置背景 首饰加工行业是贵金属废料产生的核心场景之一,珠宝店在日常经营、首饰加...
德明利:控股股东、董事长李虎自... 德明利公告称,公司控股股东、董事长李虎自愿承诺自2026年7月27日起12个月内,不以任何方式减持其...
十倍存储牛股德明利:董事长承诺... 7月24日盘后,德明利(001309.SZ)公告称,公司控股股东、董事长李虎自愿承诺自2026年7月...
外资公募二季度持仓披露 聚焦光... 观点网讯:近日,随着公募基金二季报披露收官,贝莱德、富达、路博迈、安联、联博等外商独资公募基金的二季...
政企合作、地方产业扶持为什么更... 各地政府与产业园区在大健康产业招商中,普遍优先扶持实体生产型企业,对轻资产招商、流量型项目基本不予扶...
原创 特... 近日美加贸易再起波澜,美国总统特朗普宣布对价值约 200 亿美元的加拿大进口商品加征 50% 关税,...
日本消费者大举购入珠宝,对冲日... 7月24日,财闻海外资讯消息,通胀高企、日元持续走弱,日本民众纷纷抢购奢侈珠宝,将其当作保值避险资产...
Anthropic杀入AI制药... 来源:智药局 从挖人才到建社群,Anthropic对AI制药领域的野心,实在太明显了。 近日,Ant...
小红书:启动人力系统复盘,邀请... 小红书上市的传闻,传了也有一个多月了吧。 市场迟迟蹲不到官方的回应,导致坊间一度是众说纷纭…结果没想...
“蛋白粉里没蛋白”:达开生物蛋... 图片来源:视觉中国 蓝鲸新闻7月24日讯(记者 代紫庭)当不少乳清蛋白粉一路涨到一罐数百元时,500...
Anthropic被曝9月上市... 智东西 编译 | 茄子 编辑 | 程茜 智东西7月24日消息,昨日,The Information援...
追加3亿美元投资扩大美国生产布... 7月24日, 百济神州(06160.HK)涨超4%,截至发稿,涨4.02%,报202.6港元,成交额...
段永平换仓了。。盯上这些科技股 全球科技股巨震之际,段永平开始换仓了。 段永平近日在社交平台回复网友时,透露了自己最新操作。 网友问...
原创 为... 为了不让中国“占便宜”,欧盟“放过了”俄罗斯。 日前,欧盟第21轮对俄制裁遭到希腊否决。无奈之下,欧...
圣邦股份跌3.32%,成交额1... 来源:新浪证券-红岸工作室 7月24日,圣邦股份跌3.32%,成交额11.29亿元,换手率1.86%...
新华鲜报丨企业年金个人账户明年... 无论你在哪里干、社会保险接着算,这句话在企业年金上有了新体现。 7月24日,《企业年金个人账户转移接...
原创 曹... 饭桌上最容易吵翻天的话题,除了催婚,大概就是买房。一个说手里有房心里不慌,一个说背上房贷就是给银行打...
盒马超盒算NB首进西南 成都6... 观点网讯:7月24日,盒马旗下平价社区超市品牌超盒算NB正式进入西南市场,首批6家门店在成都同步开业...