【问题标题】:Tensorflow-gpu 2.3.1 cannot access GPU, NVIDIA GeForce MX150Tensorflow-gpu 2.3.1 无法访问 GPU,NVIDIA GeForce MX150
【发布时间】:2020-10-27 12:51:19
【问题描述】:

我在 Windows 10 中安装了 CPU 和 GPU 版本的 tensorflow。

conda list t.*flow
# packages in environment at C:\Users\Dell\anaconda4:
#
# Name                    Version                   Build  Channel
tensorflow                2.3.1                    pypi_0    pypi
tensorflow-estimator      2.3.0                    pypi_0    pypi
tensorflow-gpu            2.3.1                    pypi_0    pypi
tensorflow-gpu-estimator  2.3.0                    pypi_0    pypi

另外,我已经按照此链接https://towardsdatascience.com/installing-tensorflow-with-cuda-cudnn-and-gpu-support-on-windows-10-60693e46e781 上的步骤安装了 CUDA 和 cuDNN,唯一的区别是我下载了最新版本的 CUDA 和 cuDNN 以符合 tensorflow 2.3.1 的要求,但我仍然可以不访问我的 GPU,这是一个 NVIDIA GeForce MX150。

import tensorflow as tf
tf.test.is_built_with_cuda()

返回真。

tf.test.is_gpu_available(cuda_only=False, min_cuda_compute_capability=None)

输出:

警告:tensorflow:From :1: is_gpu_available(来自 tensorflow.python.framework.test_util)已弃用,将在未来版本中删除。 更新说明: 请改用tf.config.list_physical_devices('GPU')

错误

关于为什么 tensorflow 2.3.1 无法访问/找到 GPU 有什么想法吗?请帮我解决这个问题。

【问题讨论】:

  • 运行示例程序时,Tensorflow 的完整日志输出是什么?

标签: python tensorflow


【解决方案1】:

我相信tensorflow-gpu 不需要tensorflow 就可以工作,并且通过安装两者,您可能正在导入 cpu 版本。

先卸载标准的 tensorflow,看看能不能解决。

NVIDIA GeForce MX150 确实支持 CUDA,但与 tensorflow、CUDA 和 CUDNN 的最新版本可能仍然存在兼容性问题。

here 的讨论声称与 CUDA 9.1 和 CUDNN 7.0.5 的工作组合。我的建议是删除您已安装的版本并尝试这些,尽管这可能需要降级 tensorflow-gpu 以使其兼容。

【讨论】:

  • 我尝试卸载 Tensorflow,但输出仍然相同。 tensorflow-gpu 找不到 gpu。您对如何解决这个问题有什么建议吗?
  • 你的 GPU 肯定在 compatible 卡列表中吗?
  • 我的GPU型号是NVIDIA GeForce MX150。但是,它不在您共享的列表中,MX150 支持 CUDA nvidia.com/en-us/geforce/gaming-laptops/geforce-mx150/…
  • 你可以在 docker 环境中运行来避免这一切。 tensorflow.org/install/docker
  • 是的,应该没问题。但我可以根据经验告诉你,找到驱动程序、cuda 工具包、cud-nn、tensorflow 和 python 的有效组合通常很痛苦,仅仅因为它应该工作并不意味着它会。您似乎并不孤单,在this thread 上,人们似乎在 CUDA 9.1 和 CUDNN 7.0.5 上取得了成功。我的建议是删除您已安装的版本并尝试这些,尽管这可能需要降级 tensorflow-gpu 以使其兼容。
【解决方案2】:

您的警告表明 tf.test.is_gpu_available 已弃用。如果您在此处访问 tensorflow 文档: https://www.tensorflow.org/api_docs/python/tf/test/is_gpu_available。文档中提到,这种检查 GPU 访问权限的方法已被弃用。

您应该使用tf.config.experimental.list_physical_devices('GPU')。 更准确地说,使用如下:

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

如果您有一个 GPU,您的预期输出应如下所示:

# Num GPUs Available:  1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-10
    • 2020-12-25
    • 1970-01-01
    • 2016-07-27
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    相关资源
    最近更新 更多