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]]]