张量流完全连接的控制流每个n时代摘要

时间:2016-07-06 19:39:55

标签: python-2.7 tensorflow control-flow

当我不使用队列时,我喜欢在训练的时代记录丢失,准确性,ppv等,并在每个时代结束时提交tf.summary。

我不确定如何使用队列复制此行为。当一个纪元完成时,我能听到一个信号吗?

(0.9版)

典型设置如下:

queue=tf.string_input_producer(num_epochs=7)

... #build graph#...

#training
try:
    while not coord.should_stop():
        sess.run(train_op)
except:
    #file has been read num_epoch times
    #do some stuff.. maybe summaries
    coord.request_stop()
finally:
    coord.join(threads)

所以,显然我可以设置num_epoch = 1并在except块中创建摘要。这需要在每个时期运行我的整个程序一次,并且它似乎不是最有效的。

1 个答案:

答案 0 :(得分:-1)

编辑已更改为对问题进行修改的帐号。

时代不是TensorFlow内置或“已知”的东西。您必须跟踪训练循环中的时期,并在时代结束时运行摘要操作。像下面这样的伪代码应该可以工作:

num_mini_batches_in_epoch = ... # something like examples_in_file / mini_batch_size
try:
    while True:
      for i in num_mini_batches_in_epoch:
        if coord.should_stop(): raise Exception()
        sess.run(train_op)
      sess.run([loss_summary, accuracy_summary])
except:
    #file has been read num_epoch times
    #do some stuff.. maybe summaries
    coord.request_stop()
finally:
    coord.join(threads)