UnboundLocalError: local variable ‘loss’ referenced before assignment解决方法

UnboundLocalError: local variable ‘loss’ referenced before assignment

文章目录

  • UnboundLocalError: local variable ‘loss’ referenced before assignment
  • 问题
  • 解决办法


问题

最近在跑程序的时候,牵扯到多个设置dp,ddp的问题,更改完之后经常爆出一个非常奇怪的错:UnboundLocalError: local variable ‘loss’ referenced before assignment
在这里插入图片描述如果我们从字面上来解释,他的意思是我的loss未定义就被引用了(萌新为此还专门去看了一下python里面的全局变量,把这一堆loss在train函数里面全部设置成了全局变量,但是并没有卵用.小熊摊手)


解决办法

后面我去万能的google,终于在pytorch的官网下面发现了一个讨论帖
原网址:pytorch讨论区
里面有位大神指出:
在这里插入图片描述

这应该是解析dataloader出了问题,差不多就是在enumerate(dataloader)这一步没有返回任何东西,也可以引申为数据集在传入的时候出了问题。
后来发现由于各种非常离谱的原因(batchsize,更换了ddp,同时多个任务运行)导致显存爆炸了,所以爆了这个错,关注一下显存,处理一下数据传入就解决啦

你可能感兴趣的:(pytorch,深度学习,python)