pytorch中维度不一致张量之间加减/逻辑运算问题
最近在看一个程序的时候很迷惑pytorch中维度不一致的张量之间如何让做加减和逻辑运算,参考了一个大神的博文https://blog.youkuaiyun.com/bxdzyhx/article/details/110831005
然后自己试了一下,特此记录一下
1.如果运算的两个张量维度不一致,那么首先把维度低的那个张量从右边和维度高的张量对齐
2.当两个张量维度相同时,对应轴的值需要一样,或者为1(即对应的每个轴要么相等,要么一方是1,才可以运算)
以逻辑与&为例
这里bp维度是(5,1,1,5),a的维度是(5,5)
进行逻辑与&运算:
可以看出,最终结果的维度为(5,1,5,5),即bp和a都进行了维度扩充
运算时首先按规则1,将a从右边与bp对齐,a的维度变为(1,1,5,5),
然后按规则2,bp和a的维度相同了,可以运算了,实际运算