发布时间:2023-01-02 09:30
从github上down下来的一个做无监督的GAN网络代码, 把所有参数改完后,开始run。第一个epoch跑完,在loss_G2.backward()这一句报错,这个bug卡了三天,记录一下让自己张张记性:
网上提到最多的解决方法:
1.将模型中所有的inplace=True改成inplace=False
2.将model += [nn.Conv2d(tch, 1, 1, 1, 0)]中的+=操作全部改为model = model + [nn.Conv2d(tch, 1, 1, 1, 0)](注意:不要写为model = [nn.Conv2d(tch, 1, 1, 1, 0)] + model,不然整个模型的顺序就反了)
我按照上面两条改了,仍然报错
我自己是通过降pytorch的版本解决了这个bug,如果上面的方法行不通,真的建议尝试一下。我在服务器上跑,觉得创建一个新的环境,除了安装旧版本的pytorch,还要重新安装一大堆库,一直就没去弄。今天尝试安了一个老版本的pytorch,结果就通了:
我报错的环境:
pytorch=1.5.1
cuda=10.1
作者使用的环境:
pytorch=0.4.0
cuda=9.0
跑通的环境:
pytorch=1.4.0
cuda=9.0
######路漫漫其修远兮######