如何检查在TensorFlow中使用CPU还是GPU?

时间:2018-11-16 17:35:29

标签: tensorflow gpu cpu

我已经读过

os.environ["CUDA_VISIBLE_DEVICES"] = ''

注意tensorflow将在CPU上运行并且

os.environ["CUDA_VISIBLE_DEVICES"] = '0'

注意tensorflow将在GPU 0上运行。

如何检查使用的设备?

代码

# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))

仅显示结果

[[ 22.  28.]
 [ 49.  64.]]

并且没有使用过的设备等。

2 个答案:

答案 0 :(得分:1)

您应该可以通过打开tensorflow日志语句来做到这一点。有几种方法可以做到这一点。您可以使用bash环境变量来完成此操作。

export TF_CPP_MIN_LOG_LEVEL=1

或在您的代码中使用。

tf.logging.set_verbosity(tf.logging.INFO)

在我的系统上,我得到类似...

  

设备映射:/ job:localhost /副本:0 /任务:0 /设备:XLA_CPU:0->   设备:XLA_CPU设备   / job:本地主机/副本:0 /任务:0 /设备:XLA_GPU:0->设备:XLA_GPU   设备/作业:本地主机/副本:0 /任务:0 /设备:GPU:0->设备:0,   名称:GeForce GTX TITAN X,PCI总线ID:0000:65:00.0,计算   能力:5.2 MatMul:(MatMul):   / job:本地主机/副本:0 /任务:0 /设备:GPU:0 a:(常量):   / job:本地主机/副本:0 /任务:0 /设备:GPU:0 b:(常量):   / job:localhost /副本:0 /任务:0 /设备:GPU:0 [[22。 28.] [49。 64。]]

答案 1 :(得分:0)

我发现Python和IPython之间存在差异。 IPython是Spyder中使用的内核。所以我想这就是产生不同输出的原因。