我正在运行cifar10_multi_gpu_train.py
脚本并打开设备放置日志记录,我看到所有操作都放在 CPU 上。 当我运行它时,它输出:
Filling queue with 20000 CIFAR images before starting to train. This will take a few minutes.
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
I tensorflow/core/common_runtime/direct_session.cc:45] Direct session inter op parallelism threads: 8
Device mapping: no known devices.
I tensorflow/core/common_runtime/direct_session.cc:111] Device mapping:
softmax_linear/biases/ExponentialMovingAverage: /job:localhost/replica:0/task:0/cpu:0
I tensorflow/core/common_runtime/simple_placer.cc:289] softmax_linear/biases/ExponentialMovingAverage: /job:localhost/replica:0/task:0/cpu:0
.....
.....
我想Device mapping: no known devices.
行应该列出与当前会话关联的设备,但为什么它没有任何设备? 脚本调用
tf.device('/gpu:0')
。
我的 GPU 是 Nvidia GeForce GTX 970。
解决了这个问题。
我一定是不小心构建了没有“--config=cuda”标志的python包。 当我用这个标志重建时,然后 pip 卸载了 tensorflow,然后用新构建的包重新安装,它工作得很好。
当我在设备放置日志记录打开的情况下运行 cifar10_multi_gpu_train.py 脚本时发生了同样的问题。 当你说“我一定是不小心构建了没有“--config=cuda”标志的python包”时,我不知道你是什么意思,你能说出你重建了哪个python包吗?
@GuangmingZhu ,在 TensorFlow下载和设置页面上,构建 pip 包的命令应该是:
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
我只是忘记了--config=cuda
。
最有用的评论
解决了这个问题。
我一定是不小心构建了没有“--config=cuda”标志的python包。 当我用这个标志重建时,然后 pip 卸载了 tensorflow,然后用新构建的包重新安装,它工作得很好。