TensorFlow多维矩阵的转置,anspo()的理解
警钟这⼀篇写得相当清楚。
我额外添加⼀些对参数perm的理解:
赣南客家围屋与雨有关的诗句这是官⽅⽂档⾥的描述,简单的翻译:
转置矩阵a根据参数perm对矩阵维数进⾏调整。
怎样学习电脑知识返回的张量的维数i将对应于输⼊维数perm[i]。如果没有指定perm,默认为(n-1…0),其中n是输⼊张量的秩。因此,默认情况下,这个操作对⼆维输⼊张量执⾏⼀个常规矩阵转置。如果共轭(conjugate)为true,a.dtype可以是complex64,也可以是complex128,然后对a的值进⾏共轭和转置。
在numpy转置中,@compatibility(numpy)是⼀种内存效率⾼的常量时间操作,因为它们只是⽤调整后的步长返回相同数据的新视图。张量流不⽀持⼤步,因此转置返回⼀个新的张量,其中的项被置换。@end_compatibility
perm[i]内放的是转置后的新张量的轴相对于旧张量的改变,也就是你想要的改变。
初始情况下,n维张量中轴的排列为[0,1,2,3,…,n-1]
王一恒例如:⼀个⼆维张量x,初始情况下轴的排列为(0,1)
[
[1, 2, 3],
远离头痛[4, 5, 6]
]
perm=[1, 0],意味着新矩阵中 [轴0变为轴1,轴1变为轴0].
x = tf.constant([[1,2,3],[4,5,6]]) tf.transpo(x)
#[[1, 4]#[2, 5] # [3, 6]]
Equivalently(相当于):
#[[1, 4]
# [2, 5] # [3, 6]]
我在实际中遇到的例⼦:
>>>stant(housing_data_plus_bias,dtype=tf.float32,name="X") >>>stant(shape(-1,1),dtype=tf.float32,name="y") >>>print(X.shape)
(20640,9)
>>>anspo(X)#张量转置
>>>print(XT)
Tensor("transpo:0", shape=(9,20640), dtype=float32)
时光会记得