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))
我正在尝试 运行 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))