据我所知,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
]
你知道为什么吗?
答案 0 :(得分:3)
默认情况下,unique_ptr
表示流程可用的所有核心。您可以创建设备cpu:0
,cpu: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)