TensorFlow while 循环,其中预测是下一次迭代的输入

食肉龙

我试图让一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章