pytorch 与 numpy 的数组广播机制


numpy 的文档提到数组广播机制为:
When operating on two arrays, NumPy compares their shapes element-wise. It starts with the trailing dimensions, and works its way forward. Two dimensions are compatible when
they are equal, or

  1. one of them is 1
  2. If these conditions are not met, a ValueError: frames are not aligned exception is thrown, indicating that the arrays have incompatible shapes. The size of the resulting array is the maximum size along each dimension of the input arrays.

翻译过来就是,从两个数组地末尾开始算起,若轴长相等或者其中一个地维度为1,则认为是广播兼容的,否则是不兼容地。广播兼容的数组会在缺失的维度和长度为1的维度上进行。

例如:

a.shape + b.shape c.shape
(4, 1) + (1) --> (4, 1)
(4, 1) + (3,) --> (4, 3)
(2, 3, 4) + (1, 4) --> (2, 3, 4)
(2, 3, 4) + (3, 1) --> (2, 3, 4)
(2, 3, 4) + (2, 1, 1) --> (2, 3, 4)
(2, 3, 4) + (3, ) X
(4, 3) + (4,) X
(4, 3) + (3,) --> (4, 3)
(4, 3) + (3) --> (4, 3)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM