2016-05-07 4 views
0

これは非常に簡単かもしれませんが、私は答えを見つけることができません。私はtf.while_loopの 'body'の内側にテンソルを使用しようとしています。簡単にするために、(3,4)型テンソル 'x'をそれに渡しています。しばらくの間、 'body'関数の中で何もしません。しかし、この議論の通過はいくつかの問題を引き起こしているようです。スタックトレースは 'AssertionError:'だけを伝えます。助けてください。 コード:TensorflowのAssertionError while_loop

import tensorflow as tf 
import numpy as np 

def cond(sequence_len, step, x): 
    return tf.less(step,sequence_len) 

def body(sequence_len, step, x): 
    return (sequence_len, step+1) 

step = tf.constant(0) 
sequence_len = tf.constant(10) 
x = tf.zeros([3, 4], tf.int32) 
res,step = tf.while_loop(cond,body,[sequence_len, step, x]) 

with tf.Session() as sess: 
    sess.run(tf.initialize_all_variables()) 
    step_eval = step.eval(session=sess) 

print(step_eval) 

完全なスタックトレースも下に貼り付けられます。 The image of the stack trace

答えて

0

tf.while_loop()あなたは体が()テンソルのリストを取り、同じ長さのと同じ種類の入力としてとテンソルのリストを返す呼び出し可能であることを確認する必要があります。それがWhile_loopの仕組みです。各リターンは入力引数として返されます。すなわち、前のリターンは次の反復の入力パラメータである。

関連する問題