在tensorflow中,您可以使用以下代码运行train_step 1000次:
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss=loss)
for _ in range(1000):
sess.run(train_step)
有没有办法使用tensorflow的while循环?
我尝试使用下面的while循环,但没有得到任何训练:
i = tf.constant(0)
c = lambda i: tf.less(i, 1000)
def body(i):
with tf.control_dependencies([train_step]):
return i+1
r = tf.while_loop(c, body, [i])
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
result = sess.run(r)
答案 0 :(得分:1)
要使用tensorflow while循环多次运行训练步骤,传递给tf.while_loop
的正文函数必须是一个python函数,它从输入张量开始计算训练步长张量。
类似
def body(i):
data = iterator.get_next()
logits = my_tower(data)
...
train_step = ...
with tf.control_dependencies([train_step]):
return i+1