Tensorflow 显式设备要求错误

Tensor Flow Explicit Device Requirement Error

我正在尝试 运行 CIFAR10 教程,一个 gpu 上的训练代码和另一个 gpu 上的评估代码。我确定我的电脑上有两个 GPU,我可以通过 运行 这里的简单示例来测试它: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 中的错误还是我遗漏了什么?

Could not satisfy explicit device specification表示您没有对应的设备。你的机器上真的有支持 CUDA 的 GPU 吗?

更新: 正如下面的讨论所示,如果特定操作(在本例中为 RandomShuffleQueue)无法执行,也会引发此错误GPU,因为它只有 CPU 实现。

如果您可以接受 TensorFlow 为您选择的设备(特别是当没有可用的 GPU 实现时回退到 CPU),请考虑在您的配置中设置 allow_soft_placement,根据 this article:

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