2016-02-11 3 views

答えて

-6

tf.rangeを含むTensorFlow Python API関数の戻り値の型は、Tensorです。 Tensorは、計算を表すグラフのノードへの記号ハンドルです。実際の計算は、Tensorevalメソッドを呼び出すか、またはのrunメソッドにオブジェクトを渡すことで行います。あなたの場合、おそらくあなたが意図したのはnumpyrangeを繰り返し処理するだけでした。あなたがループ(tf.while_loop)ながらtensorflowを使用する必要があります。これを行うために

for in in np.range(...): 
    # do something 
+0

をいいえ、これは私が探していますものではありません。私はkが入力に基づいて決定されている間にk回動作するループを望む。入力はテンソルプレースホルダーです。 –

+0

実際、私は2つの入力を持っています。最初の行列は行列であり、2番目の行列は特定の演算を何回実行すべきかです。 –

+2

テンソルフローを作成してnumpy呼び出しを行うと、GPUでopが実行されないようにするため、GPUに準拠したテンソルフロー操作しか持たないことが重要です。 –

16

次のように:

i = tf.constant(0) 
while_condition = lambda i: tf.less(i, input_placeholder[1, 1]) 
def body(i): 
    # do something here which you want to do in your loop 
    # increment i 
    return [tf.add(i, 1)] 

# do the loop: 
r = tf.while_loop(while_condition, body, [i]) 
+1

私のために働く。 Tnx! – anamar

+0

ループに変数があるとどうなりますか?参照エラーが発生する https://stackoverflow.com/questions/47760429/tensorflow-local-variable-lstm-state-referenced-before-assignment – kong

+0

これはうまくいくようですが、Tensorflowのアドバイスと直接矛盾するようです。 while_loopは、parallel_iterations> 0の場合と同じ結果を返します。これは競合状態を設定して、 "n"と "n * parallel_iterations"の間のどこかで評価されるループにつながるようです –

関連する問題