在Tensorflow中多次运行训练操作

时间:2017-11-04 23:14:10

标签: python tensorflow

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

1 个答案:

答案 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