negative step not yet supported
预测出的嗅球和白色部分需要验证是否正确,因为嗅球和白色部分比较对称,所以有个朴素的方法:将预测出的mask从中间折叠,计算重合部分占比,占比过小的认为是无效预测
然而在实现时发现pytorch的Tensor不支持负数作为步长:
Google之后发现:这2个issue:
在第二个issue里可以看到这个问题的历程:
apaszke大佬表示非负步长的切片功能很容易添加,并在一周后将这部分代码和其他更新一起正式合并进主分支
此外,还有有很多大佬实现了各种
野生的:
高效的:
支持cuda的:
高鲁棒性的:
torch.flip方法,来支持tensor的翻转,让我大开眼界,佩服的五体投地……
回到正题上,一位项目Member回应说负步长的支持是个breaking change,要保证C10重写的Tensor库做到向前兼容,目前还没有修复问题。
现如今,pytorch提供了内置的torch.flip来提供翻转的功能,最终还是解决了问题。
有关C10等pytorch的内部实现,pytorch核心之一Edward Z. Yang在今年5月14日的纽约meetup上进行了演讲介绍,完整文章在此:http://blog.ezyang.com/2019/05/pytorch-internals/,有时间打算好好拜读下
向开源界的大佬们致敬