尽管有多个内核,为什么TensorFlow只找到一个CPU设备?

时间:2016-10-06 10:07:23

标签: python tensorflow

据我所知,TensorFlow为每个核心创建一个设备。 (来源:https://github.com/samjabrahams/tensorflow-white-paper-notes注意:重申一下 - 在这种情况下,"单个设备"意味着使用单个CPU核心或单个GPU,而不是一台机器。同样,&#34 ;多设备"不是指多台机器,而是指多个CPU内核和/或GPU。请参阅" 3.3分布式执行"进行多机讨论。

我的电脑有四个核心,但它只识别一个:

>>> from tensorflow.python.client import device_lib 
>>> print(device_lib.list_local_devices())
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
bus_adjacency: BUS_ANY
incarnation: 13835232998165214133
]

你知道为什么吗?

1 个答案:

答案 0 :(得分:3)

默认情况下,unique_ptr表示流程可用的所有核心。您可以创建设备cpu:0cpu:0,它们通过执行类似操作来代表每个逻辑核心

cpu:1

然后您可以将设备分配为

config = tf.ConfigProto(device_count={"CPU": 2},
                        inter_op_parallelism_threads=2,
                        intra_op_parallelism_threads=1)
sess = tf.Session(config=config)