TensorFlow默认使用多少个核心(不使用协调器)?

时间:2017-11-14 13:55:11

标签: python multithreading tensorflow cpu core

我猜这个张量流默认使用单核(当我不使用' Coordinator')时,因为tensorflow是python库。

但是,当我在Mac上看到Activity Monitor并运行tensorflow代码时  在默认设置下,python 3.6的$ CPU高于100%,线程数大于10.

张量流是否默认使用多核?

1 个答案:

答案 0 :(得分:0)

Tensorflow是一个python库,但它本质上是本机C ++实现的包装器。每当你定义一个op时,就像这样:

with tf.device("/cpu:0"):
  a = tf.Variable(3.0)
  b = tf.constant(4.0)
  c = a * b

... c不是python变量ab的乘法,而是tf.multiply op,它没有那么简单CPU and GPU implementations

所以它不应该让你感到困惑:tensorflow引擎试图使用所有可用的硬件功能来执行操作,特别是因为FAQ states是多核的:

  

各个操作系统具有并行实现,在CPU中使用多个内核,或在GPU中使用多个线程。

顺便说一下,值得注意的是"/cpu:0"设备聚合多CPU系统上的所有CPU。 目前无法在特定CPU上固定节点或使用 只是所有CPU的一个子集。