【问题标题】:Can't import gpu version of tensorflow无法导入 tensorflow 的 gpu 版本
【发布时间】:2020-02-28 08:44:54
【问题描述】:

我无法使用 tensorflow,因为我在尝试导入 tensorflow 时收到此错误消息:

2020-02-28 09:31:24.742077: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Maximal\Documents\Python\PyCharm\Projekt1\venv\lib\site-packages\tensorflow\__init__.py", line 98, in <module>
    from tensorflow_core import *
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Maximal\Documents\Python\PyCharm\Projekt1\venv\lib\site-packages\tensorflow_core\__init__.py", line 40, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Maximal\Documents\Python\PyCharm\Projekt1\venv\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
    module = self._load()
  File "C:\Users\Maximal\Documents\Python\PyCharm\Projekt1\venv\lib\site-packages\tensorflow\__init__.py", line 44, in _load
    module = _importlib.import_module(self.__name__)
  File "C:\Users\Maximal\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Users\Maximal\Documents\Python\PyCharm\Projekt1\venv\lib\site-packages\tensorflow_core\python\__init__.py", line 52, in <module>
    from tensorflow.core.framework.graph_pb2 import *
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Maximal\Documents\Python\PyCharm\Projekt1\venv\lib\site-packages\tensorflow_core\core\framework\graph_pb2.py", line 7, in <module>
    from google.protobuf import descriptor as _descriptor
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Maximal\Documents\Python\PyCharm\Projekt1\venv\lib\site-packages\google\protobuf\descriptor.py", line 47, in <module>
    from google.protobuf.pyext import _message
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)

我已经安装了 Cuda toolkit 10.0 和相应版本的 cuDNN 以及 Visual Studio。起初我得到了消息:

Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found

于是我检查了cuda文件夹,发现只有一个cudart64_100.dll。经过一番研究,我发现 cudart_101.dll 是 cuda 工具包 10.1 版本的一部分。所以我用相应版本的cuDNN安装了10.1。但现在我得到了消息:

Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found

这对我来说毫无意义,而且我没有找到解决此问题的方法。 我使用最新版本的 PyCharm、Python 3.6、Tensorflow-gpu 2.0.0 以及 Cuda 10.0 和 10.1

【问题讨论】:

  • 您是否尝试过使用 Conda 来创建环境?我在 pip 上取得了不错的成绩。
  • @talonmies cuda 是这个问题的相关标签。为什么要删除它?
  • 因为这不是与 CUDA 相关的主题问题,这就是原因。损坏的 tensorflow 安装不是 CUDA 编程问题
  • 我不同意,因为错误显然是由错误的 CUDA 安装引起的。我不认为 CUDA 标签仅用于 CUDA programming 问题,它也应该用于安装相关问题,因为让 CuDNN 和 CUDA 工作非常困难,而且很多人都在尝试它因此很明显,关于这个话题存在问题。还是我们应该创建一个 cuda-installation 标签?
  • CUDA 的安装很简单。从嵌入式 Tegra 到在大型集群上部署,遵循标准 NVIDIA 说明是一件简单的事情。我已经做了几千次了。还有很多其他人。很明显,Stack Overflow 几乎从来没有收到任何关于安装 CUDA 问题的问题,除了与 tensorflow 相关的问题。问题和困难几乎与 tensorflow 的工作方式和分布方式有关。因此,如果这些是主题问题,它们是 tensorflow 问题,而不是 CUDA 问题

标签: python tensorflow nvidia


【解决方案1】:

此时我会简单地完全删除(例如卸载)两个 CUDA 包(10.0 和 10.1),因为同时拥有这两个包可能不是一个好主意。卸载后,请确保检查所有文件夹,以免留下任何内容。

然后,检查您的 NVIDIA 驱动程序是否是最新的。

严格按照Windows 的安装说明进行操作。 确保获得与您安装的 CUDA 版本兼容的 CuDNN 包。当您通过this 链接安装 CuDNN 时,它将为您提供一个向导,您可以在其中为不同的 CUDA 版本选择不同的 CuDNN 版本。选择版本 10.1 的那个,并将 cudnn64_7.dllcudnn.hcudnn.lib 分别放在 CUDA 安装目录的右侧文件夹中。

然后,我会创建一个新的 conda 环境,类似于

conda create --name DeepLearning3.6 python=3.6 tensorflow-gpu numpy scipy pandas scikit-learn pandas

会做(或者您可能需要的任何其他软件包,我通常使用这些作为起点,但请确保您的环境至少包含 tensorflow-gpu 和 numpy)。当然,您也可以使用 pip 和 venv,两者都应该由您决定。

然后,不要忘记在 PyCharm 中指向正确的环境(Ctrl + Alt + S,选择正确的项目解释器,在本例中称为DeepLearning3.6)。尝试再次运行脚本,它现在应该可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2018-06-12
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    相关资源
    最近更新 更多