テンソルの要素には別のインデックスリストをアクセスする必要がありますが、現在は単純な構文では不可能です。私はそれがバグかどうか分からなかったので、私はうまくいけば私の構文を修正するためにここに投稿します。テンソルの要素にテンソルフローの別のインデックスリストを使用してアクセスする
import tensorflow as tf
import numpy as np
sess = tf.Session()
input = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
idx_list = np.array([0,2])
output = input[:, idx_list]
print(sess.run(output))
しかし、私はエラーを取得する:私のコードがある
ValueError: Shapes must be equal rank, but are 0 and 1 From merging shape 0 with other shapes. for 'strided_slice/stack_1' (op: 'Pack') with input shapes: [], [2].
tensorflowの私のインストールバージョン(インストールをPIP)tensorflow-1.1.0-cp35です。
更新:
私はtf.fn_mapでこの操作を行うが、私は本当にそれを疑うが、インデックス作成を行うための正しい方法である:
output = tf.transpose(tf.map_fn(lambda x: input[:,x], idx_list),perm=[1,0])
はアップデート:あり
具体的にはissue registeredであり、最新のコメントに役立つ素敵なスニペットが付いています。一方、この操作は、次のようにあなたがtf.gather
とtf.transpose
を使用してそれを行うことができます...
感謝を印刷します! githubで問題がまだ表示されていない場合は、自分のアップデートを参照してください。 –