AI学习记录 - transpose的理解

有帮助的话,创作不易,点个小赞

在网上看了好多关于 transpose 函数的解释,只是介绍了怎么计算的,但是没有介绍为啥这样子计算,我有两种看法。

第一种:举例三维矩阵(多维矩阵同理),对于程序员来说,要求对下图用一个数组表示三维矩阵,不假思索肯定就是用三维数组了。

但是有一个问题,不同的程序员,写出来的三维数组可能有三种方式,下面json代码有举例,这里就不写了,这取决于你先写那个面。transpose 函数本质上是调整你原矩阵的面的排序。但是不管先写哪个面,表达的都是同一个矩阵。
在这里插入图片描述

第二种:transpose 本质上是在指定空间中的对物体的旋转或翻转,下面举例的是三维空间,其它多维空间也一样

画了一个三维空间,三维矩阵相当于三维空间的一个长方体或者正方体,无论里面的矩阵如何变化,维度都不变
在这里插入图片描述

创建一个形状为 (2, 3, 4) 的张量


[ // 2个元素
    [ // 3个元素
        [ // 4个元素 1,  2,  3,  4],                        
        [ 5,  6,  7,  8],                        
        [ 9, 10, 11, 12]
    ],
    [
        [13, 14, 15, 16],                        
        [17, 18, 19, 20],                        
        [21, 22, 23, 24]
    ]
]

 

我们分别将他transpose(0,1) 和 transpose(0,2)
在这里插入图片描述

transpose(0,1)


 [ // 3个元素
     [  // 2个元素
         [ // 4个元素 1,  2,  3,  4],
         [13, 14, 15, 16]
     ],

     [
         [ 5,  6,  7,  8],
         [17, 18, 19, 20]
     ],

     [
         [ 9, 10, 11, 12],
         [21, 22, 23, 24]
     ]
]

transpose(0,2)

[  
	[    
		[ 1, 13],
    	[ 5, 17],
    	[ 9, 21]
  ],
  [    
  		[ 2, 14],
    	[ 6, 18],
    	[10, 22]
  ],
  [    
  		[ 3, 15],
    	[ 7, 19],
    	[11, 23]
  ],
  [    
  		[ 4, 16],
    	[ 8, 20],
    	[12, 24]
  ]
]
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值