当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.linalg.matrix_transpose用法及代码示例


转置张量 a 的最后两个维度。

用法

tf.linalg.matrix_transpose(
    a, name='matrix_transpose', conjugate=False
)

参数

  • a Tensorrank >= 2
  • name 操作的名称(可选)。
  • conjugate 可选的布尔值。将其设置为 True 在数学上等价于 tf.math.conj(tf.linalg.matrix_transpose(input))。

返回

  • 转置的批处理矩阵 Tensor

抛出

  • ValueError 如果 a 被静态确定为具有 rank < 2

例如:

x = tf.constant([[1, 2, 3], [4, 5, 6]])
tf.linalg.matrix_transpose(x)  # [[1, 4],
                               #  [2, 5],
                               #  [3, 6]]

x = tf.constant([[1 + 1j, 2 + 2j, 3 + 3j],
                 [4 + 4j, 5 + 5j, 6 + 6j]])
tf.linalg.matrix_transpose(x, conjugate=True)  # [[1 - 1j, 4 - 4j],
                                               #  [2 - 2j, 5 - 5j],
                                               #  [3 - 3j, 6 - 6j]]

# Matrix with two batch dimensions.
# x.shape is [1, 2, 3, 4]
# tf.linalg.matrix_transpose(x) is shape [1, 2, 4, 3]

请注意,tf.matmul 提供了允许转置参数的 kwargs。这是以最低成本完成的,并且比使用此函数更可取。例如:

# Good!  Transpose is taken at minimal additional cost.
tf.matmul(matrix, b, transpose_b=True)

# Inefficient!
tf.matmul(matrix, tf.linalg.matrix_transpose(b))

numpy 兼容性

numpy 中,转置是节省内存的常数时间操作,因为它们只是返回具有调整后的相同数据的新视图 strides

TensorFlow 不支持步幅,linalg.matrix_transpose 返回一个新张量,其中项目已置换。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.linalg.matrix_transpose。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。