1.no supported kernel for GPU devices is available.
解决参考:https://github.com/tensorflow/tensorflow/issues/2285
我在 centos7 上面安装好 TensorFlow1.2-gpu 版本后,运行程序发现并没有使用 gpu,而是用的 cpu. 然后我把 变量直接定义到 tf.device(‘/gpu:0’) 下,结果报错了。
import tensorflow as tf
with tf.device('/gpu:0'):
a = tf.Variable([1,2,3,4,5])
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(a))
报错:InvalidArgumentError (see above for traceback): Cannot assign a device for operation ‘Variable’: Could not satisfy explicit device specification ‘/device:GPU:0’ because no supported kernel for GPU devices is available.
我以为是 cuda 安装有问题,因为不是我自己安装的,而且我也没有修改权限,后来找了不少资料,终于解决了,方式就是加上 config = tf.ConfigProto(allow_soft_placement=True) 这么一行就行了。现在默认就是使用 GPU.
import tensorflow as tf
from time import sleep
a = tf.Variable([1,2,3,4,5])
# 加上下面一行就可以使用 个gpu了
config = tf.ConfigProto(allow_soft_placement=True)
# 这一行设置 gpu 随使用增长,我一般都会加上
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
sess.run(tf.global_variables_initializer())
print(sess.run(a))