0
点赞
收藏
分享

微信扫一扫

tensorflow之transpose的使用


函数作用是对矩阵进行转换操作

 

 

import tensorflow as tf
import numpy as np

'''
x = [[1,3,5],
   [2,4,6]] 二维数组为2行3列的矩阵
    对于二维数组,perm=[0,1],0代表二维数组的行,1代表二维数组的列
    tf.transpose(x, perm=[1, 0]),结果为[[1,2],
[3,4],
[5,6]]
perm[1,0]代表将数组的行和列进行交换,代表矩阵的转置,转置之后为3行2列

'''

'''
 x = [[[1,2,3,4],[5,6,7,8],[5,6,7,8]],
      [[9,12,13,14],[15,16,17,18],[5,6,7,8]]] 此3维数组为2x3x4,可以看成是两个 3x4的二维数组
    对于二维数组,perm=[0,1,2],0代表三维数组的高(即为二维数组的个数),1代表二维数组的行,2代表二维数组的列
    tf.transpose(x, perm=[1,0,2])代表将三位数组的高和行进行转置,

'''

z = np.array([
[[1,2,3,4],[5,6,7,8],[5,6,7,8]],
[[9,10,11,12],[13,14,15,16],[17,18,19,20]]
])
y = tf.transpose(z, [1, 0, 2]) # 2*3*4 3*2*4
'''
是高与行的转化,把行看成常数
[a1,a2,a3], --- [a1,b1],[a2,b2],[a3,b3]
[b1,b2,b3]
'''
y1 = tf.transpose(z, [2, 1, 0])

with tf.Session() as sess:

print(sess.run(y))

'''
[[[ 1 2 3 4]
[ 9 10 11 12]]

[[ 5 6 7 8]
[13 14 15 16]]

[[ 5 6 7 8]
[17 18 19 20]]]
'''
print(sess.run(y1))

'''
[[[ 1 9]
[ 5 13]
[ 5 17]]

[[ 2 10]
[ 6 14]
[ 6 18]]

[[ 3 11]
[ 7 15]
[ 7 19]]

[[ 4 12]
[ 8 16]
[ 8 20]]]


'''

# x = [
# [[1,2,3,4],[5,6,7,8],[5,6,7,8]],
# [[9,10,11,12],[13,14,15,16],[17,18,19,20]]
# ]

 

举报

相关推荐

0 条评论