本文仅讨论两个维度3D中的输入
在最近的注意力学习中,缩小功能使我不了解
这灯太抽象了
我将解释代码和图片
首先创建一个三维阵列的小例子
为了防止相同尺寸值的重合(例如三维阵列(3,3,3)或(2,4,4)等)
输出结果如下所示
通常将(3,2,5)解释为3维2行和5列很容易使人感到困惑
然后我们可以在块,线路上理解它,并且更容易理解
例如(3,2,5),表示3个阵列2*5
下面我只使用3 3*3图片懒惰,例如堆积的是我们知道的三维矩阵
让我们简要介绍permute()函数
pertute(dims)参数dims使用矩阵尺寸的维度,通常从0开始,默认情况下,即0,第一个维度,第一个维度等也可以理解为,0th,第一个块等。当然,矩阵可以使用至少两个维度来使用二维的置换。DIM是0和1,可以写入置换(0,1)而无需任何更改。尺寸与以前的尺寸与置换(1,0)相同。如果三维置换(0,1,2)0表示矩阵的转换(0,1,2)0代表几个维度:0在此示例中,该示例对应于3矩阵1表示每一块中有多少行:1中的1中1对应于每块2。line2表示每列的列:在此示例2中,2在每个块中对应于每个块5列,因此3-二维矩阵带有3行和5列没有实际的意义。确定差异。它与x,y,z有点相似,以区分三个坐标维度,这是直接使用以下代码来解释的男人制造三维情况给所有人
三维情况变化一个:没有参数不会更改
发现矩阵目前尚未更改,并且仍然以前的方式排列
更改两个:1与2交换
可以比较两张图片
在不更改每一部分的前提下(即),调整了每一部分的等级(即两个维矩阵的转换)
更改三:0和1交换
可以看出,每个块的块数量和线路已更改
也就是说,与参数0相对应的值变成3件成2件
与参数1相对应的2行变为3行
此更改正是0和1的位置,这导致参数被调整
目前,它变成了2个块,3行和5列(最初3块,2行和5列)
更改4:0和2交换
目前,与参数0相对应的3片已成为5列,与5个参数2相对应。
更改5:0和1交换,1和2交换
目前,与参数0相对应的3片已成为5行,对应于5个参数1到3行参数2和5列变为2列
更改6:0和1交换,0和2交换
目前,与参数0相对应的3个零件变为2行,对应于2个参数1到5行参数2和5列变为3列
基于上面提到的两个维和三维示例,您可以知道permute()函数实际上是为矩阵的块交换的
其中的参数不是特定的值
但是一代手指
我不想写手写。
根据本文,我详细解释了维度变更过程的过程
可以更好地帮助每个人了解置换功能的用法
对于高级文章,请戳我
原始:https://juejin.cn/post/709530888887263281189