阅读完这篇教程 https://www.tensorflow.org/guide/using_gpu 后,我在这个简单的代码中检查了GPU会话
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
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)
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
x = sess.run(c)
print(x)
输出结果为: 2018-08-07 18:44:59.019144:I tensorflow/core/platform/cpu_feature_guard.cc:141] 您的 CPU 支持此 TensorFlow 二进制文件未编译使用的指令集:AVX2 FMA Device mapping: no known devices. 2018-08-07 18:44:59.019536:I tensorflow/core/common_runtime/direct_session.cc:288] 设备映射: MatMul: (MatMul):/job:localhost/replica:0/task:0/device:CPU:0 2018-08-07 18:44:59.019902:I tensorflow/core/common_runtime/placer.cc:886] MatMul: (MatMul)/job:localhost/replica:0/task:0/device:CPU:0 a: (Const):/job:localhost/replica:0/task:0/device:CPU:0 2018-08-07 18:44:59.019926:I tensorflow/core/common_runtime/placer.cc:886] a: (Const)/job:localhost/replica:0/task:0/device:CPU:0 b: (Const):/job:localhost/replica:0/task:0/device:CPU:0 2018-08-07 18:44:59.019934:I tensorflow/core/common_runtime/placer.cc:886] b:(Const)/job:localhost/replica:0/task:0/device:CPU:0 [[22.28.] [49.64.]] 正如您所看到的,GPU 并未进行计算。当我更改了代码以使用 GPU 的配置并处理分数时:
conf = tf.ConfigProto()
conf.gpu_options.per_process_gpu_memory_fraction = 0.4
with tf.Session(config = conf) as sess:
x = sess.run(c)
print(x)
输出结果为
2018-08-07 18:52:22.681221: I tensorflow/core/platform/cpu_feature_guard.cc:141] 您的CPU支持指令,但此版本TensorFlow未编译为使用:AVX2 FMA [[22. 28.] [49. 64.]]
我该如何在GPU卡上运行会话呢?谢谢。