TF-tensor重排与转置

import tensorflow as tf
"""
张量可以用3×3矩阵形式来表达。
张量是一种物理量,相对于标量,矢量而言的。
矩阵是一个线性代数、矩阵论里的数学工具,它可以应用在很多地方:空间的旋转变换,量子力学中表象的变换等等。
其实表示标量的数和表示矢量的三维数组也可分别看作1×1,1×3的矩阵。

一句话,可以把张量理解为多维数组;张量的维与矩阵的维要区别一下。
"""
# reshape是重排
a = tf.constant([i for i in range(20)], shape=[2, 2, 5])
b = tf.reshape(a, shape=[5, 2, 2])
# 转置
x = tf.constant([[1, 2, 3], [4, 5, 6]])
y = tf.transpose(x)
# 多维的转置[主要看元素的index了]
x2 = tf.constant([[[1, 2, 3, 51],
                   [4, 5, 6, 52]],
                  [[7, 8, 9, 53],
                   [10, 11, 12, 54]]])
y2 = tf.transpose(x2, perm=(0, 2, 1))
y3 = tf.transpose(x2, perm=(2, 1, 0))

with tf.Session() as sess:
    print(sess.run(a))
    print(sess.run(b))
    print(sess.run(x))
    print(sess.run(y))
    print(sess.run(x2))
    print(sess.run(y2))
    print(sess.run(y3))

你可能感兴趣的:(tf)