【深度学习代码报错修改】跑图像翻译(image-to-image translation)的代码【SPMPGAN】中遇到的问题总结
时间:2024-04-06 18:20:14 来源:网络cs 作者:付梓 栏目:卖家故事 阅读:
错误一览
RuntimeError: No CUDA GPUs are availableTypeError:load() missing 1 required positional argument:'Loader'TypeError: Expected state_dict to be dict-like, got <class 'torch.nn.modules.module._Incompatiblekeys'>
RuntimeError: No CUDA GPUs are available
这个问题比较常见了,原因在于源代码需要多块gpu,而我们的电脑通常只有1块,参考:在这里我也是将源代码中的’2’改为了’0’:
# os.environ["CUDA_VISIBLE_DEVICES"] = '2'os.environ["CUDA_VISIBLE_DEVICES"] = '0'
TypeError:load() missing 1 required positional argument:‘Loader’
这个问题也比较常见,csdn上一搜一大堆,该问题在于使用yaml.load()时报错。原因是YAML 5.1版本后禁用了这个用法,这里我是将yaml降级了(原先下载的是6.0版本的),具体参考:TypeError: load() missing 1 required positional argument: ‘Loader‘?
TypeError: Expected state_dict to be dict-like, got <class ‘torch.nn.modules.module._Incompatiblekeys’>
这个问题我在csdn上搜也没有搜出来,我本身代码能力比较弱,就先请教了我的同门,奈何他也未能解决。于是请教了研二的师兄,师兄给我一顿看,最后做了如下修改:
源代码中需要加载一个pth文件,使用的是这样几句:
FID_WEIGHTS_URL = 'https://github.com/mseitzer/pytorch-fid/releases/download/fid_weights/pt_inception-2015-12-05-6726825d.pth'state_dict = load_state_dict_from_url(FID_WEIGHTS_URL, progress=True)inception.load_state_dict(state_dict)
奈何这个网络无法访问,需要科学上网,而我是连朋友的远程,就不好搞(其实这个时候报的错不是上边题目里的错,报的错是URLError,这个比较好解决)。经过搜索,我在自己的电脑上(可以进入github)进入该网站下载了这个pth文件,然后放进服务器里,并将代码修改如下:
pthfile = '/home/data/SPMPGAN-main/539c4500-8050-11e9-8c6a-72d1f2ad2d10'state_dict = inception.load_state_dict(torch.load(pthfile,map_location = 'cuda'))inception.load_state_dict(state_dict)
还是报错,师兄把上边那几行都注释掉,只改成一句:
inception.load_state_dict({k.replace('module.',''):v for k,v in torch.load(pthfile).items()})
如图:
然后!正常开始训练了,我的崇拜感直接up。但我还没搞懂为什么,特此记录(怕忘记)。希望有遇到这个问题的可以有所帮助。
阅读本书更多章节>>>>本文链接:https://www.kjpai.cn/gushi/2024-04-06/154925.html,文章来源:网络cs,作者:付梓,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!