pytorch运行报错|简记
【摘要】
运行 PULSE run.py 代码时遇到的一些报错信息,在此记录:
1 关键点在于:AttributeError: ‘Tensor’ object has no attribute 'ndim’ ...
运行 PULSE run.py 代码时遇到的一些报错信息,在此记录:
- 1 关键点在于:AttributeError: ‘Tensor’ object has no attribute 'ndim’
Traceback (most recent call last):
File "run.py", line 79, in <module>
for j,(HR,LR) in enumerate(model(ref_im,**kwargs)):
File "/home/-/-/project/eight/pulse/PULSE.py", line 110, in forward
opt = SphericalOptimizer(opt_func, var_list, lr=learning_rate)
File "/home/-/-/project/eight/pulse/SphericalOptimizer.py", line 17, in __init__
self.radii = {param: (param.pow(2).sum(tuple(range(2,param.ndim)),keepdim=True)+1e-9).sqrt() for param in params}
File "/home/-/-/project/eight/pulse/SphericalOptimizer.py", line 17, in <dictcomp>
self.radii = {param: (param.pow(2).sum(tuple(range(2,param.ndim)),keepdim=True)+1e-9).sqrt() for param in params}
AttributeError: 'Tensor' object has no attribute 'ndim'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
错误原因:pytorch版本不一致——使用的pytorch版本为1.10 ,而官方原本使用的版本为1.5
解决方法: 更换正确的pytorch版本,可能需要更换服务器 或者 合适的配套 CUDA 版本;
分析总结: 很多像这种类似的 AttributeError 通常大概率是因为框架版本不匹配的原因了。
- 2 关键点在于:TypeError: forward() missing 1 required positional argument: 'ref_im’
Traceback (most recent call last):
File "run.py", line 81, in <module>
for j,(HR,LR) in enumerate(model(ref_im,**kwargs)):
File "/home/dc1/.conda/envs/torch15/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__
result = self.forward(*input, **kwargs)
...
TypeError: Caught TypeError in replica 1 on device 1.
Original Traceback (most recent call last):
File "/home/dc1/.conda/envs/torch15/lib/python3.8/site-packages/torch/nn/parallel/parallel_apply.py", line 60, in _worker
output = module(*input, **kwargs)
File "/home/dc1/.conda/envs/torch15/lib/python3.8/site-packages/torch/nn/modules/module.py", line 550, in __call__
result = self.forward(*input, **kwargs)
TypeError: forward() missing 1 required positional argument: 'ref_im'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
错误原因:这里运行属于模型测试,这个问题主要是因为我使用了多个显卡来运行代码,导致在运行阶段,模型和数据不在同一个卡。
解决方法:双卡运行改为单卡,针对我的这个问题居然确实解决了。例如我的方式为:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
修改为:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
- 1
- 2
- 3
- 4
- 5
文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。
原文链接:positive.blog.csdn.net/article/details/107807830
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)