类tf.train.Coordinator和类tf.train.QueueRunner在tensorflow中做了什么?

cer*_*rou 1 multithreading tensorflow

我知道这两个类都处理线程.根据文档,tf.train.Coordinator协调一组线程的终止,并且tf.train.QueueRunner保存一个队列的入队操作列表,每个队列都在一个线程中运行.

但是,他们在简单的话语中的作用是什么?在培训期间什么时候需要?

Dav*_*ong 6

QueueRunner:当TensorFlow读取输入时,它需要为它维护多个队列.该队列为负责执行培训步骤的所有工作人员提供服务.我们使用队列是因为我们希望为工作人员准备好输入.如果您没有队列,则I/O将被阻止,性能将下降.

Coordindator:这是tf.train.Supervisor的一部分.这是必要的,因为你需要一个控制器来维护线程集(知道什么时候主线程应该终止,请求停止子线程等).

希望这可以帮助.