transpose函数作用是对张量进行转换操作。
1、二维张量
参数 perm=[0, 1],0代表二维矩阵的行,1代表二维矩阵的列。参数 perm=[1, 0] 代表将矩阵的行和列进行交换,即矩阵的转置。
# 2行3列矩阵
x = tf.constant([[1, 3, 5], [2, 4, 6]])
a = tf.transpose(x, perm=[1, 0])
with tf.Session() as sess:
print(sess.run(a))
# 3行2列矩阵,a = [[1, 2], [3, 4], [5, 6]]
2、三维矩阵
参数 perm=[0, 1, 2],0代表三维矩阵的高(即为二维矩阵的个数),1代表二维矩阵的行,2代表二维矩阵的列。参数 perm=[1, 0, 2] 代表将三位矩阵的高和行进行转置。
y = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
b = tf.transpose(y, perm=[0, 2, 1])
with tf.Session() as sess:
print(sess.run(b))
# b = [[[1, 4], [2, 5], [3, 6]], [[7, 10], [8, 11], [9, 12]]]
c = tf.transpose(y, perm=[1, 0, 2])
with tf.Session() as sess:
print(sess.run(c))
# c = [[[1, 2, 3], [7, 8, 9]], [[4, 5, 6], [10, 11, 12]]]