1. 程式人生 > 程式設計 >Tensorflow:轉置函式 transpose的使用詳解

Tensorflow:轉置函式 transpose的使用詳解

我就廢話不多說,咱直接看程式碼吧!

tf.transpose

transpose(
  a,perm=None,name='transpose'
)

Defined in tensorflow/python/ops/array_ops.py.

See the guides: Math > Matrix Math Functions,Tensor Transformations > Slicing and Joining

Transposes a. Permutes the dimensions according to perm.

The returned tensor's dimension i will correspond to the input dimension perm[i]. If perm is not given,it is set to (n-1…0),where n is the rank of the input tensor. Hence by default,this operation performs a regular matrix transpose on 2-D input Tensors.

For example:

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

tf.transpose(x,perm=[1,0]) # [[1,4]
               # [2,5]
               # [3,6]]
# 'perm' is more useful for n-dimensional tensors,for n > 2
x = tf.constant([[[ 1,[ 4,6]],[[ 7,8,9],[10,11,12]]])

# Take the transpose of the matrices in dimension-0
tf.transpose(x,perm=[0,1]) # [[[1,4],#  [2,5],#  [3,# [[7,10],#  [8,11],#  [9,12]]]

a的轉置是根據 perm 的設定值來進行的。

返回陣列的 dimension(尺寸、維度) i與輸入的 perm[i]的維度相一致。如果未給定perm,預設設定為 (n-1…0),這裡的 n 值是輸入變數的 rank 。因此預設情況下,這個操作執行了一個正規(regular)的2維矩形的轉置

例如:

x = [[1 2 3]
   [4 5 6]]

tf.transpose(x) ==> [[1 4]
           [2 5]
           [3 6]]

tf.transpose(x) 等價於:
tf.transpose(x perm=[1,0]) ==> [[1 4]
                 [2 5]
                 [3 6]]
a=tf.constant([[[1,[[7,12]]])
array([[[ 1,12]]])

x=tf.transpose(a,[1,2])
array([[[ 1,[ 7,9]],[[ 4,6],[0,1])
array([[[ 1,[ 2,[ 3,[ 8,[ 9,12]]]) 

x=tf.transpose(a,[2,1,0])
array([[[ 1,7],10]],[[ 2,8],[ 5,11]],[[ 3,[ 6,12]]])


array([[[ 1,12]]])

以上這篇Tensorflow:轉置函式 transpose的使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。