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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值