我试图让一个while循环TensorFlow工作,但我在努力了解body
的参数tf.while_loop
。
在我的代码中,我有一个神经网络定义如下:
input_placeholder = tf.placeholder(dtype=np.float32, shape=[None, 2])
hidden_layer = tf.layers.dense(inputs=input_placeholder, units=10, activation=tf.nn.relu)
prediction_op = tf.layers.dense(inputs=hidden_layer, units=2)
然后我想运行这个预测操作 10 次,将一次迭代的预测作为输入提供给下一次迭代。我的代码如下:
num_steps = 10
condition = lambda step_num, input_placeholder: tf.less(step_num, num_steps)
_, final_prediction = tf.while_loop(condition, body, [step_num, latest_prediction])
我感到困惑的是用于body
参数的内容。我需要主体对当前迭代进行预测,并将其设置为下一次迭代的输入。
我可以只prediction_op
用于body
吗?如果是这样,我应该如何告诉 while 循环input_placeholder
在每次调用后更新 的值prediction_op
?或者我应该以不同的方式做到这一点?
谢谢!
你可以有这样的身体定义:
def body(step_num, latest_prediction):
hidden_layer = tf.layers.dense(inputs=latest_prediction, units=10, activation=tf.nn.relu)
prediction_op = tf.layers.dense(inputs=hidden_layer, units=2)
return step_num+1, prediction_op
你可以修改while_loop
为:
step_num = 0
input_placeholder = tf.placeholder(dtype=np.float32, shape=[None, 2])
condition = lambda step_num, input_placeholder: tf.less(step_num, num_steps)
_, final_prediction = tf.while_loop(condition, body, [step_num, input_placeholder])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句