大米粥哥哥 2021-09-06 08:25 采纳率: 100%
浏览 112
已结题

pytorch1.7 RuntimeError: Expected grad_output->is_contiguous(grad_output->suggest_memory_format())

报错如下:
File "D:\software\anaconda3\envs\pytorch171\lib\site-packages\torch\tensor.py", line 221, in backward
torch.autograd.backward(self, gradient, retain_graph, create_graph)
File "D:\software\anaconda3\envs\pytorch171\lib\site-packages\torch\autograd_init_.py", line 132, in backward
allow_unreachable=True) # allow_unreachable flag
RuntimeError: Expected grad_output->is_contiguous(grad_output->suggest_memory_format()) to be true, but got false. (Could this error message be improved? If so, please report an enhancement request to PyTorch.)

img


有人遇到过同款问题吗

  • 写回答

1条回答 默认 最新

  • 爱晚乏客游 2021-09-06 08:55
    关注

    这个应该是你哪里有经过切片操作或者交换维度导致的,类似torch.view()之后没有操作就会报这个错误。报错的意思就是你前面的操作之后导致tensor矩阵无法连续了,你需要在切片完成之后后面加上X.contiguous()来保证按行优先进行一维展开的时候下标对应得上。具体原因你可以看看 PyTorch中的contiguous - 知乎 本文讲解了pytorch中contiguous的含义、定义、实现,以及contiguous存在的原因,非contiguous时的解决办法。并对比了numpy中的contiguous。 contiguous 本身是形容词,表示连续的,关于 contiguous,PyTorch 提供… https://zhuanlan.zhihu.com/p/64551412

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    大米粥哥哥 2021-09-06 08:56

    确实是切边和交换维度了,但之后我也contiguous了.. 就很奇怪

    回复
    大米粥哥哥 回复 大米粥哥哥 2021-09-06 08:58

    额 我刚刚安装完pytorch1.9 然后能跑了 高版本很鲁棒.. 不调了就用1.9了

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月6日
  • 修改了问题 9月6日
  • 创建了问题 9月6日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部