TensorFlow打开了多少个进程?

时间:2016-01-10 15:07:18

标签: tensorflow

我正在使用扭矩来使用tensorflow库运行一些基于CNN的学习。 (每个任务1个CPU)

当我在服务器上运行top时,我注意到:load average: 677.29, 668.59, 470.

我创建了一个这样的会话:sess = tf.Session()

所以我的问题是在文档中有一些地方我可以阅读TensorFlow使用的时间和数量。

1 个答案:

答案 0 :(得分:2)

当前版本的TensorFlow(0.6.0)在单个流程中运行:您创建tf.Session(或调用tensorflow::NewSession()的同一过程,如果您'使用C ++接口。)

但是,默认情况下,TensorFlow使用多个线程,这可能会导致您看到的高负载平均值。默认情况下,TensorFlow将根据系统的相应编号选择两个线程池的线程数。目前,默认行为是为"inter-op" threadpool(确定可以并行执行的操作数)和"intra-op" threadpool(确定的数量)分配相同数量的线程作为核心。可用于在操作中并行化的线程。另一个线程源是基于Python的QueueRunner,每个队列至少启动一个线程(通常在输入管道中)。

因此,如果你拥有大量内核,并且你的TensorFlow程序有很多可用的并行性(或复杂的输入管道),你最终可能会看到如此高的平均负载。