我正在使用扭矩来使用tensorflow
库运行一些基于CNN的学习。 (每个任务1个CPU)
当我在服务器上运行top
时,我注意到:load average: 677.29, 668.59, 470.
我创建了一个这样的会话:sess = tf.Session()
所以我的问题是在文档中有一些地方我可以阅读TensorFlow使用的时间和数量。
答案 0 :(得分:2)
当前版本的TensorFlow(0.6.0)在单个流程中运行:您创建tf.Session
(或调用tensorflow::NewSession()
的同一过程,如果您'使用C ++接口。)
但是,默认情况下,TensorFlow使用多个线程,这可能会导致您看到的高负载平均值。默认情况下,TensorFlow将根据系统的相应编号选择两个线程池的线程数。目前,默认行为是为"inter-op" threadpool(确定可以并行执行的操作数)和"intra-op" threadpool(确定的数量)分配相同数量的线程作为核心。可用于在操作中并行化的线程。另一个线程源是基于Python的QueueRunner
,每个队列至少启动一个线程(通常在输入管道中)。
因此,如果你拥有大量内核,并且你的TensorFlow程序有很多可用的并行性(或复杂的输入管道),你最终可能会看到如此高的平均负载。