tf.transpose函数中文意思是转置,对于低维度的转置问题,低维的还可以理解高维有点懵
看了博客也不是很明白
tf.transpose函数
tf.transpose(
a,
perm=None,
name='transpose',
conjugate=False
)
置换 a,根据 perm 重新排列尺寸.
返回的张量的维度 i 将对应于输入维度 perm[i].如果 perm 没有给出,它被设置为(n-1 ... 0),其中 n 是输入张量的秩.因此,默认情况下,此操作在二维输入张量上执行常规矩阵转置.如果共轭为 True,并且 a.dtype 是 complex64 或 complex128,那么 a 的值是共轭转置和.
例如:
x = tf.constant([[1, 2, 3], [4, 5, 6]])
tf.transpose(x) # [[1, 4]
# [2, 5]
# [3, 6]]
# Equivalently
#
tf.transpose(x, perm=[1, 0]) # [[1, 4]
# [2, 5]
# [3, 6]]
<tf.Tensor 'transpose:0' shape=(3, 2) dtype=int32>
tf.transpose(x, perm=[0, 1])#[[1, 2, 3]
# [4, 5, 6]]
<tf.Tensor 'transpose_2:0' shape=(2, 3) dtype=int32>
对于二维数组此时perm数组取值只能是0 1,perm=[0,1],0代表二维数组的行,1代表二维数组的列 为初始状态与原来的数据相等
二维数组为2行3列的矩阵
tf.transpose(x, perm=[1,
0]),与初始
perm=[0,1]相比第一列与第二列互换也就是行列互换,变成3*2的矩阵,结果可由上面验证
x = tf.constant([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]]])#shape=(2, 2, 3)
tf.transpose(x, perm=[0, 1,2])#shape=(2, 2, 3)=x
a=tf.transpose(x, perm=[1, 0, 2])
'''
[[[ 1 2 3]
[ 7 8 9]]
[[ 4 5 6]
[10 11 12]]]'
'''
b=tf.transpose(x, perm=[1, 2,0])
'''
[[[ 1 7]
[ 2 8]
[ 3 9]]
[[ 4 10]
[ 5 11]
[ 6 12]]]
'''
tf.transpose的第二个参数perm=[0,1,2],0代表三维数组的高本例中为2,1代表二维数组的行本例中为2,2代表二维数组的列本例中为3。初始数组维度是2*2*3
tf.transpose(x, perm=[1,0,2])代表将三位数组的高和行进行转置。 (与perm=[0,1,2])相比 一二列互换 维度依旧是2*2*3tf.transpose(x, perm=[1,2,0]) 原始perm=[0,1,2]交换第一第二维变成perm=[1,0,2]在交换2 3维度变成