pytorch运行报错|简记

举报
墨理学AI 发表于 2022/01/11 00:26:54 2022/01/11
【摘要】 运行 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。