GPU上的tensorflow:尽管cuda的deviceQuery返回“ PASS”结果,但没有已知设备
tensorflow
5
0

注意:这个问题最初是在github上提出的 ,但是却被要求放在这里

我在gpu上运行tensorflow时遇到问题,这似乎不是通常的cuda的配置问题,因为一切似乎都表明cuda已正确设置。

主要症状:运行tensorflow时,未检测到我的gpu( 正在运行的代码 及其输出 )。

与通常的问题不同的是,cuda似乎正确安装并运行了cuda示例中的./deviceQuery成功( 输出 )。

我有两张图形卡:

  • 用于显示器的旧GTX 650(我不想将其与tensorflow一起使用)
  • 我想专门用于张量流的GTX 1060

我用:

我试过了:

  • /usr/local/cuda/bin/$PATH
  • 使用with tf.device('/gpu:1'):以及with tf.device('/gpu:0'):失败时强制使用tensorflow脚本中的gpu放置,以防万一)
  • 将我想与CUDA_VISIBLE_DEVICES一起使用的GPU列入白名单,以防我的旧不受支持的卡的存在确实导致问题
  • 使用sudo运行脚本(因为为什么不这样做)

如果有用,这是nvidia-sminvidia-debugdump -l的输出。

在这一点上,我觉得我已经遵循了所有的面包屑,却不知道该怎么做。我什至不确定我是在考虑错误还是配置问题。任何有关如何调试此建议将不胜感激。谢谢!

更新 :在GitHub上的Yaroslav的帮助下,我通过提高日志级别收集了更多的调试信息,但似乎并没有对设备选择说太多: https : //gist.github.com/oelmekki/760a37ca50bf58d4f03f46d104b798bb

更新2 :使用theano可以正确检测到gpu,但有趣的是,它抱怨cuDNN太新了,然后回退到cpu( 代码ran输出 )。也许这也可能是张量流的问题吗?

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

这里没有其他答案对我有用。经过一番修补后,我发现这在处理由二进制构建的Tensorflow时解决了我的问题:


步骤0:卸载protobuf

pip uninstall protobuf

步骤1:卸载TensorFlow

pip uninstall tensorflow
pip uninstall tensorflow-gpu

步骤2:使用GPU支持强制重新安装Tensorflow

pip install --upgrade --force-reinstall tensorflow-gpu

第3步:如果尚未设置,请设置CUDA_VISIBLE_DEVICES

所以对我来说2个GPU

export CUDA_VISIBLE_DEVICES=0,1
收藏
评论

就我而言:

pip3 uninstall tensorflow

是不足够的。因为当重新安装时:

pip3 install tensorflow-gpu

它仍然使用cpu而不是gpu重新安装tensorflow。因此,在安装tensorflow-gpu之前,我尝试删除了站点软件包中的所有相关张量文件夹,并卸载了protobuf,它可以正常工作!

结论:

pip3 uninstall tensorflow

删除〜\ Python35 \ Lib \ site-packages中的所有张量文件夹

pip3 uninstall protobuf
pip3 install tensorflow-gpu
收藏
评论

从日志输出中,您似乎正在运行的是TensorFlow的CPU版本(PyPI: tensorflow ),而不是GPU版本(PyPI: tensorflow-gpu )。运行GPU版本将记录有关CUDA库的信息,如果无法加载它们或打开驱动程序,则会记录错误。

如果运行以下命令,则应该能够在后续运行中使用GPU:

$ pip uninstall tensorflow
$ pip install tensorflow-gpu
收藏
评论

可能看起来很愚蠢,但是sudo reboot已为我和其他几个人解决了完全相同的问题。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号