Tensorflow错误:无法为操作'Bincount'分配设备...因为没有支持的GPU设备内核可用

时间:2017-08-07 13:55:23

标签: python-3.x tensorflow

所以,我收到以下错误:

无法为操作'Bincount_1'分配设备:无法满足显式设备规范'/ device:GPU:0',因为没有支持GPU设备的内核可用。      [[节点:Bincount_1 = Bincount [T = DT_INT32,_device =“/ device:GPU:0”](ToInt32_1,Minimum_1,Const_7)]]

对我来说,这很奇怪。因为我正在尝试运行以下代码:

import numpy as np
import tensorflow as tf

K = 4
with tf.device('/gpu:0'):
    X = tf.constant(np.array([1,2,2,2,2,1,1,1,1,0,0,0,3,3,3,2,1,2,0]))
    count = tf.bincount(tf.to_int32(X), minlength = 4, maxlength = 4)

sess = tf.Session(config = tf.ConfigProto( log_device_placement = True ) )
print( sess.run(count) )

对我来说奇怪的是,当我运行一个稍微不同的代码时,它可以工作:

import numpy as np
import tensorflow as tf

K = 4
X = tf.constant(np.array([1,2,2,2,2,1,1,1,1,0,0,0,3,3,3,2,1,2,0]))
count = tf.bincount(tf.to_int32(X), minlength = 4, maxlength = 4)

sess = tf.Session(config = tf.ConfigProto( log_device_placement = True ) )
print( sess.run(count) )

而且,如果我删除 tf.bincount 功能,它也可以。

所以我的问题是,为什么 tf.bincount 会在尝试使用设备放置时导致错误?

我真的需要这个功能才能工作。 此外,我正在运行的系统是8 K-40 GPU,python3,tensorflow 1.2。

1 个答案:

答案 0 :(得分:0)

我找到了答案,目前在gpu中没有对tf.bincount(...)的支持。

https://github.com/tensorflow/tensorflow/issues/11554

中有请求