首页 > 科技 > 人工智能pytorch编程:关于矩阵和向量编程中的广播机制的说明

人工智能pytorch编程:关于矩阵和向量编程中的广播机制的说明

专栏推荐



正文内容

当向量和不同维度的向量或者标量相加的时候,因为维度不匹配的问题,此时会自动进行广播机制,但是不是任何时候都可以进行广播机制的,广播机制是有一定的规则要求的。

先来直观的看以下广播机制

我们可以看到不同维度的向量之间相加,会使用广播机制,广播机器的规则对dim小的向量来进行扩展,比如说

一个向量的维度是(16,3,28,28)

而另外一个向量的维度是(1),那么它会对(1)这个向量来进行扩展,步骤是这样的:

首先先将向量(1)向高维度扩展,扩展成(1,1,1,1),注意(1,1,1,1)这四个1中越往后表示维度越低,也就是说我们要将向量(1)的前面加上三个1

变为(1,1,1,1)之后,然后再扩展成(16,3,28,28),然后就可以进行对位相加了

举例子:

A:(4,32,14,14)

B:(1,32,1,1)

B会扩展成(4,32,14,14)


A(4,32,14,14)

B(14,14)

B会扩展成(4,32,14,14)


A(4,32,14,14)

B(2,32,14,14)

则此时B不会被扩展,会出问题,因为B的最高维索引不是1,要是B是下面两个这样的就可以

(1,32,14,14)或者(32,14,14)

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/294956.html