张量流显式设备要求错误

时间:2015-12-03 20:42:15

标签: python tensorflow tensorflow-gpu

我正在尝试使用一个gpu上的训练代码和另一个上的eval代码运行CIFAR10教程。我知道我的计算机上有两个gpus,我可以通过运行这里的简单示例来测试它:https://www.tensorflow.org/how_tos/using_gpu/index.html

但是,使用with device('/gpu:0')对CIFAR示例中的大多数变量都不起作用。我在gpu与cpu上尝试了很多不同变量的组合,或者在一个或另一个上尝试了所有变量。某些变量总是出现相同的错误,如下所示:

Cannot assign a device to node 'shuffle_batch/random_shuffle_queue': Could not satisfy explicit device specification '/gpu:0'

这可能是Tensor Flow中的错误还是我错过了什么?

1 个答案:

答案 0 :(得分:9)

Could not satisfy explicit device specification表示您没有相应的设备。你的机器上是否真的有一个支持CUDA的GPU?

UPDATE:正如下面的讨论中所述,如果特定操作(在这种情况下,RandomShuffleQueue)无法在GPU上执行,则会引发此错误,因为它只有CPU实现。

如果您对TensorFlow选择适合您的设备(特别是在没有GPU实施时可以退回CPU)感觉不错,请考虑按照this article在配置中设置allow_soft_placement

sess = tf.Session(config=tf.ConfigProto(
    allow_soft_placement=True, log_device_placement=True))