pytorch中的广播语义是什么


这篇文章主要介绍“pytorch中的广播语义是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytorch中的广播语义是什么”文章能帮助大家解决问题。官方文档有这样一个解释:In short, if a PyTorch operation supports broadcast, then its Tensor arguments can be automatically expanded to be of equal sizes (without making copies of the data).这句话的意思大概是:简单的说,如果一个pytorch操作支持广播,那么它的Tensor参数可以自动的扩展为相同的尺寸(不需要复制数据)。按照我的理解,应该是指算法计算过程中,不同的Tensor如果size不同,但是符合一定的规则,那么可以自动的进行维度扩展,来实现Tensor的计算。在维度扩展的过程中,并不是真的把维度小的Tensor复制为和维度大的Tensor相同,因为这样太浪费内存了。首先来看标准的情况,两个Tensor的size相同,则可以直接计算:输出:torch.Size([4, 2, 3])但是,如果两个Tensor的维度并不相同,pytorch也是可以根据下面的两个法则进行计算:(1)Each tensor has at least one dimension.(2)When iterating over the dimension sizes, starting at the trailing dimension, the dimension sizes must either be equal, one of them is 1, or one of them does not exist.每个Tensor至少有一个维度。迭代标注尺寸时,从后面的标注开始第一个规则要求每个参与计算的Tensor至少有一个维度,第二个规则是指在维度迭代时,从最后一个维度开始,可以有三种情况:维度相等其中一个维度是1其中一个维度不存在输出:RuntimeError: The size of tensor a (0) must match the size of tensor b (免费云主机域名3) at non-singleton dimension 1这里,不满足第一个规则“每个参与计算的Tensor至少有一个维度”。输出:RuntimeError: The size of tensor a (2) must match
the size of tensor b (3) at non-singleton dimension 1这里,不满足第二个规则,因为从最后的维度开始迭代的过程中,倒数第三个维度:x是2,y是3。这并不符合第二条规则的三种情况,所以不能使用广播语义。输出:torch.Size([5, 3, 4, 1])x是四维的,y是三维的,从最后一个维度开始迭代:最后一维:x是1,y是1,满足规则二倒数第二维:x是4,y是1,满足规则二倒数第三维:x是3,y是3,满足规则一倒数第四维:x是5,y是0,满足规则一关于“pytorch中的广播语义是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: CSS3如何实现白色质感3D按钮特效

这篇文章给大家分享的是有关CSS3如何实现白色质感3D按钮特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   使用方法   HTML结构      Normal                                  …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/09 12:43
下一篇 01/09 12:43

相关推荐