预测出的嗅球和白色部分需要验证是否正确,因为嗅球和白色部分比较对称,所以有个朴素的方法:将预测出的mask从中间折叠,计算重合部分占比,占比过小的认为是无效预测

然而在实现时发现pytorch的Tensor不支持负数作为步长:

Snipaste_2019-08-07_15-56-09.png

Google之后发现:这2个issue:

在第二个issue里可以看到这个问题的历程:

apaszke大佬表示非负步长的切片功能很容易添加并在一周后将这部分代码和其他更新一起正式合并进主分支

此外,还有有很多大佬实现了各种

野生的:
Snipaste_2019-08-07_16-41-15.png

高效的:
Snipaste_2019-08-07_16-41-54.png

支持cuda的:
Snipaste_2019-08-07_16-42-28.png

高鲁棒性的:
Snipaste_2019-08-07_16-43-28.png

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/,有时间打算好好拜读下

向开源界的大佬们致敬

标签: 深度学习, pytorch, 开源

添加新评论