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

时间:2018-11-29 15:06:47

标签: python tensorflow

我正在尝试在TensorFlow中使用while循环,但是正在努力了解R(R'Last) := Standard.Character('°');的{​​{1}}参数。

在我的代码中,我有一个如下定义的神经网络:

body
然后我要运行10次此预测操作,将一次迭代的预测作为输入提供给下一次迭代。我的代码如下:

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) 参数使用什么。我需要主体进行当前迭代的预测,并将其设置为下一次迭代的输入。

我可以仅将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吗?如果是这样,我应该如何告诉while循环在每次调用prediction_op之后更新body的值?还是应该以其他方式执行此操作?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以具有如下的身体定义:

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])