RuntimeError range.second - range.first == t.size() INTERNAL ASSERT FAILED at .XXXX
发布日期:2021-07-01 03:06:27
浏览次数:2
分类:技术文章
本文共 766 字,大约阅读时间需要 2 分钟。
今天跑网络的时候遇见了这么一个错误:
Exception has occurred: RuntimeError
range.second - range.first == t.size() INTERNAL ASSERT FAILED at .XXXX , please report a bug to PyTorch. inconsistent range for TensorList output (copy_range at .XXX)
在百度和bing找了半天没找到相关解释,最后还是google给力,丢一个解决问题的
其实主要原因还是在于网络里出现了利用tensor 作为下标索引,但是并没有将其计算梯度的属性置为False,比如如下例子
import torcht1 = torch.tensor([[1, 2], [3,4]]).float().requires_grad_()t2 = torch.argmin(t1, dim=1)t3 = t1[t2]t3.sum().backward()
t2也是一个tensor,但是t3是获取t1中以t2为下标的数据,这里的t2显然不需要计算梯度嘛,但是你必须得告诉torch,这里不要算,否则这个憨憨就会去算,并且还会报个让人摸不着头脑的错= =
解决方法当然也很简单,将上述代码修改为
import torcht1 = torch.tensor([[1, 2], [3,4]]).float().requires_grad_()t2 = torch.argmin(t1, dim=1)t3 = t1[t2.detach()]t3.sum().backward()
其实就是t2 修改为了 t2.detach(),阻断了梯度的传播,就不用再计算出错啦~ヾ(*´▽‘*)ノ
转载地址:https://meteorrain.blog.csdn.net/article/details/112317214 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月18日 03时22分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Scala学习第十一天 Scala中的apply实战详解
2019-05-03
Scala学习第七天 Scala类的属性和对象私有字段实战详解
2019-05-03
Scala学习第六天 Map、Tuple、Zip实战解析
2019-05-03
Scala学习第四天 Scala的For与Function进阶实战、Lazy的使用
2019-05-03
Scala学习第三天 Tuple、Array、May与文件操作入门实战
2019-05-03
Scala学习第二天 Scala函数定义、流程控制、异常处理
2019-05-03
Scala学习第五天 Scala数组操作实战详解
2019-05-03
基于key-value的存储系统Redis
2019-05-03
Scala学习第十二天 Scala中的继承:超类的构造、重写字段、重写方法代码实战
2019-05-03
Scala学习第十三天 抽象类、抽象字段、抽象方法
2019-05-03
Scala学习第十四天 Scala中作为接口的trait、在对象中混入trait代码实战
2019-05-03
Scala学习第十五天 Scala多重继承、多重继承构造器执行顺序及AOP实现
2019-05-03
Scala学习第十六天 包的定义、包对象、包的引用、包的隐式引用代码实战
2019-05-03
Scala学习第十七天 包、类、对象、成员、伴生类、伴生对象访问权限实战彻底详解
2019-05-03
Scala学习第十八天 文件的读取、写入、控制台输入操作代码实战
2019-05-03
Scala学习第十九天 正则表达式、与模式匹配结合的的Reg代码实战
2019-05-03
剑指offer:栈的压入、弹出序列(java)
2019-05-03
剑指offer:往上到下打印二叉树(java)
2019-05-03
剑指offer:二叉搜索树的后序遍历序列(java)
2019-05-03
剑指offer:二叉树中和为某一值的所有路径(java)
2019-05-03