tf.transpose()関数

1771 ワード

tensorflowの中には配列操作に対する関数がたくさんあります.公式ドキュメントは卵用がありません.ネット上の投稿は直接copy公式ドキュメントで説明せず、自分でプログラムを書いて理解するしかありません.3次元のtensorで理解します.
tf.transpose()は配列の転置関数として,def transpose(a, perm=None, name="transpose"):
"""Transposes `a`. Permutes the dimensions according to `perm`.
の原型を持つ.
a:は入力された配列です
perm:転置の操作を制御、perm=[0,1,2]の3次元の配列を例にとる、0-は最外層の1次元を表し、1-は外向内数の2次元を表し、2-は最内層の1次元を表す、このpermはデフォルトの値である.この関数とパラメータpermを次のように入力して理解します.nput_x = [
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
],
[
[13, 14, 15, 16],
[17, 18, 19, 20],
[21, 22, 23, 24]
]
]

input_xは1つの2 x 3 x 4の1つのtensorで、perm=[1,0,2]を仮定して、最も外の2層を転置して、tensorを得るのは3 x 2 x 4の1つのテンソルであるべきで、input_x抽象化は、3次元[[A,B,C],[D,E,F,]]が2 x 3になるtensorに関わらず、2 x 3の配列[A B C D E F]に類似して3 x 2になる配列[A D B E C F]を転置してA-Fを具体的な値に変換し、最終的に得られるテンソル量は[[1 2 3 4][13 14 15 16]][[5 6 7 8][17 18 19 20][[9 10 11 12][21 22 23 24]]であることからpermの上位2列の交換の役割がperm=[0,2,1]で内層裏面を交換する2次元と説明されると,従来の2 x 3 x 4から2 x 4 x 3のテンソル量となり抽象化されず,その結果、[[1 5 9][2 6 10][3 7 11][4 8 12][[13 17 21][14 18 22][15 19 23][16 20 24]]の下に私のコードが貼られた.
import tensorflow as tf

input_x = [
    [
        [1, 2, 3, 4],
        [5, 6, 7, 8],
        [9, 10, 11, 12]
    ],
    [
        [13, 14, 15, 16],
        [17, 18, 19, 20],
        [21, 22, 23, 24]
    ]

]

result = tf.transpose(input_x, perm=[0, 2, 1])
with tf.Session() as sess:
    print(sess.run(result))

注意print(result)を使用するとtensorのname shape dtype情報Tensor(「transpose:0」,shape=(2,4,3),dtype=int 32)のみが印刷され、配列の形式を打とうとします.session esult = tf.transpose(input_x, perm=[0, 2, 1])
print(result)
with tf.Session() as sess:
print(sess.run(result))
を使用します