tf.compat.v1.linalg.matrix_transpose
Транспонирует последние два измерения тензора a.
tf.compat.v1.linalg.matrix_transpose(
a, name='matrix_transpose', conjugate=False
)
Например:
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))
| Аргументы | |
|---|---|
a | Tensor с rank >= 2. |
name | Имя операции (необязательно). |
conjugate | Необязательное значение bool. Установка значения True математически эквивалентна tf.math.conj(tf.linalg.matrix_transpose(input)). |
| Возвращает | |
|---|---|
Транспонированную пакетную матрицу Tensor. |
| Вызывает исключение | |
|---|---|
ValueError | Если статически установлено, что a имеет rank < 2. |
Совместимость с numpy
В numpy транспонирование выполняется за постоянное время и эффективно использует память, поскольку операция просто возвращает новое представление тех же данных с изменёнными strides.
TensorFlow не поддерживает шаги, поэтому linalg.matrix_transpose возвращает новый тензор с переставленными элементами.
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/linalg/matrix_transpose