tf.transpose()交换张量位置(矩阵转置)

tf.transpose()交换张量位置(矩阵转置)

tf.transpose() 是TensorFlow中用于矩阵,张量转置用的,除了可以交换二维矩阵的行和列之外,还可以交换张量的不同轴之间的顺序,函数使用方法如:

transpose(
    a,
    perm=None,
    name='transpose'
)

其中,perm参数用于指定交换后的张量的轴是原先张量的轴的位置

例子如:

import tensorflow as tf

raw = tf.Variable(tf.random_normal(shape=(4, 3, 2)))
transed_1 = tf.transpose(raw, perm=[1, 0, 2])
transed_2 = tf.transpose(raw, perm=[2, 0, 1])

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(raw.eval())
    print('-----------------------------')
    print(sess.run(transed_1))
    print('-----------------------------')
    print(sess.run(transed_2))

输出如:

[[[-1.41665018 -1.47619307]
  [-0.26559591 -0.33706442]
  [-0.70152593  0.93126309]]

 [[ 0.67472041 -0.81008494]
  [ 1.74384487  1.2157737 ]
  [ 0.94848555  0.12342481]]

 [[-1.14412427  0.00174908]
  [ 1.09407389 -0.67949998]
  [-0.40438497  0.5193854 ]]

 [[ 0.79596692 -0.58678174]
  [ 1.16309321  0.42068651]
  [ 1.03116786 -0.69529283]]]
-----------------------------
[[[-1.41665018 -1.47619307]
  [ 0.67472041 -0.81008494]
  [-1.14412427  0.00174908]
  [ 0.79596692 -0.58678174]]

 [[-0.26559591 -0.33706442]
  [ 1.74384487  1.2157737 ]
  [ 1.09407389 -0.67949998]
  [ 1.16309321  0.42068651]]

 [[-0.70152593  0.93126309]
  [ 0.94848555  0.12342481]
  [-0.40438497  0.5193854 ]
  [ 1.03116786 -0.69529283]]]
-----------------------------
[[[-1.41665018 -0.26559591 -0.70152593]
  [ 0.67472041  1.74384487  0.94848555]
  [-1.14412427  1.09407389 -0.40438497]
  [ 0.79596692  1.16309321  1.03116786]]

 [[-1.47619307 -0.33706442  0.93126309]
  [-0.81008494  1.2157737   0.12342481]
  [ 0.00174908 -0.67949998  0.5193854 ]
  [-0.58678174  0.42068651 -0.69529283]]]

猜你喜欢

转载自blog.csdn.net/loseinvain/article/details/78994660
今日推荐