轉置 a ,其中 a 是張量。
用法
tf.transpose(
a, perm=None, conjugate=False, name='transpose'
)參數
-
a一個Tensor。 -
perma的尺寸排列。這應該是一個向量。 -
conjugate可選的布爾值。將其設置為True在數學上等同於 tf.math.conj(tf.transpose(input))。 -
name操作的名稱(可選)。
返回
-
轉置的
Tensor。
根據 perm 的值排列尺寸。
返回的張量維度 i 將對應於輸入維度 perm[i] 。如果沒有給出perm,則設置為(n-1...0),其中n是輸入張量的秩。因此,默認情況下,此操作對二維輸入張量執行常規矩陣轉置。
如果 conjugate 是 True 並且 a.dtype 是 complex64 或 complex128 那麽 a 的值是共軛和轉置的。
例如:
x = tf.constant([[1, 2, 3], [4, 5, 6]])
tf.transpose(x)
<tf.Tensor:shape=(3, 2), dtype=int32, numpy=
array([[1, 4],
[2, 5],
[3, 6]], dtype=int32)>
等效地,您可以調用 tf.transpose(x, perm=[1, 0]) 。
如果 x 很複雜,設置 conjugate=True 會給出共軛轉置:
x = tf.constant([[1 + 1j, 2 + 2j, 3 + 3j],
[4 + 4j, 5 + 5j, 6 + 6j]])
tf.transpose(x, conjugate=True)
<tf.Tensor:shape=(3, 2), dtype=complex128, numpy=
array([[1.-1.j, 4.-4.j],
[2.-2.j, 5.-5.j],
[3.-3.j, 6.-6.j]])>
'perm' 對於 n > 2 的 n 維張量更有用:
x = tf.constant([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]]])
如上所述,隻需調用 tf.transpose 將默認為 perm=[2,1,0] 。
要對維度 0 中的矩陣進行轉置(例如,當您轉置 0 是批量維度的矩陣時),您可以設置 perm=[0,2,1] 。
tf.transpose(x, perm=[0, 2, 1])
<tf.Tensor:shape=(2, 3, 2), dtype=int32, numpy=
array([[[ 1, 4],
[ 2, 5],
[ 3, 6]],
[[ 7, 10],
[ 8, 11],
[ 9, 12]]], dtype=int32)>
注意:這有一個簡寫 linalg.matrix_transpose ):
numpy 兼容性
在 numpy 中,轉置是節省內存的常數時間操作,因為它們隻是返回具有調整後的相同數據的新視圖 strides 。
TensorFlow 不支持跨步,因此 transpose 返回一個新張量,其中項目已置換。
相關用法
- Python tf.train.Coordinator.stop_on_exception用法及代碼示例
- Python tf.train.ExponentialMovingAverage用法及代碼示例
- Python tf.train.Checkpoint.restore用法及代碼示例
- Python tf.train.Checkpoint.read用法及代碼示例
- Python tf.train.CheckpointOptions用法及代碼示例
- Python tf.train.list_variables用法及代碼示例
- Python tf.train.ClusterSpec用法及代碼示例
- Python tf.train.Checkpoint.save用法及代碼示例
- Python tf.train.Checkpoint.write用法及代碼示例
- Python tf.train.Coordinator用法及代碼示例
- Python tf.train.CheckpointManager用法及代碼示例
- Python tf.train.Checkpoint用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.transpose。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
