cudnn安装问题求助

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cudnn安装问题求助相关的知识,希望对你有一定的参考价值。

参考技术A NVIDIA CuDNN 安装说明
CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等。
CuDNN可以在官网免费获得,注册帐号后即可下载。官网没有找到安装说明,下载得到的压缩包内也没有Readme. 不过google一下就会找到许多说明。基本原理是把lib文件加入到系统能找到的lib文件夹里, 把头文件加到系统能找到的include文件夹里就可以。这里把他们加到CUDA的文件夹下(参考这里)
tar -xzvf cudnn-6.5-linux-R1.tgz
cd cudnn-6.5-linux-R1
sudo cp lib* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/
执行后发现还是找不到库, 报错
error while loading shared libraries: libcudnn.so.6.5: cannot open shared object file: No such file or directory
而lib文件夹是在系统路径里的,用ls -al发现是文件权限的问题,因此用下述命令先删除软连接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6.5
然后修改文件权限,并创建新的软连接
sudo chmod u=rwx,g=rx,o=rx libcudnn.so.6.5.18
sudo ln -s libcudnn.so.6.5.18 libcudnn.so.6.5
sudo ln -s libcudnn.so.6.5 libcudnn.s

安装 Tensorflow 的问题——不是 CUDA/CuDNN 问题

【中文标题】安装 Tensorflow 的问题——不是 CUDA/CuDNN 问题【英文标题】:Issue installing Tensorflow -- not a CUDA/CuDNN issue 【发布时间】:2018-10-30 00:04:06 【问题描述】:

我最近开始使用 Tensorflow,但我在安装时遇到了问题。每次我尝试导入它时,我都会收到以下错误

>>> import tensorflow as tf
Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 571, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow_internal')
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 571, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow_internal')
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'


Failed to load the native TensorFlow runtime.

我查看了其他与我有同样问题的堆栈溢出帖子,他们建议从 NVIDIA 获取 CUDA 库。问题是,我既没有 NVIDIA 显卡也没有 tensorflow 的 GPU 版本,所以我认为这不是问题所在。还有人建议确保安装了 Visual Studio 的 Microsoft 可再发行组件。

如果这是一个基于系统变量的问题,我将不胜感激更改系统变量的帮助,因为我是这样做的新手。谢谢!

一些系统信息:

操作系统:Microsoft Windows 10 专业版 10.0.17134 CPU:英特尔至强 E5620 显卡:Radeon RX 480 Python 版本:3.6.5 amd64 TensorFlow 安装方法:pip install tensorflow

【问题讨论】:

【参考方案1】:

我的猜测是您正在尝试使用 TF >= 1.6,因为您的 CPU 相当旧并且不支持 AVX 指令。确实从 1.6 开始,tensorflow pre-built binaries use AVX instructions。

目前您的选择是:

    使用 TF 1.5 或更早版本的官方预构建二进制文件。 (您会错过一些事情,但我想说这仍然可以)。 搜索不支持 AVX 的 TF >= 1.6 的非官方预构建二进制文件。 目前,Windows 上 conda install 的 TF 1.10 之前的预构建二进制文件似乎没有使用 AVX 支持构建,尽管我无法在任何地方找到此信息,因此无法判断这是否是故意的,以及这将持续多长时间案例。 另一方面,请注意来自 conda-forge 的二进制文件(在主通道上可用之前,它曾经是主要的 conda tensorflow 提供程序)是在支持 AVX 的情况下构建的。 更改您的硬件以支持 AVX(显然)。 在没有 AVX 指令的情况下编译您自己的 tensorflow 二进制文件。如果其他选项都不可行,这是一个合理的选择。

【讨论】:

第 1 步在***.com/questions/50476182/…解决了我的问题 @Wok 你怎么能找到 TF1.5?我也有同样的问题,但是找不到TF1.5安装【参考方案2】:

@user1735003 想通了。 我卸载了最新版本的 tensorflow

pip uninstall tensorflow

然后安装了tensorflow 1.5

pip install tensorflow==1.5

然后我验证了安装与脚本一起工作

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

我得到了正确的输出

Hello, TensorFlow!

【讨论】:

正在收集 tensorflow==1.5 找不到满足要求 tensorflow==1.5 的版本(来自版本:)没有找到 tensorflow==1.5 的匹配分布【参考方案3】:

请记住,上述答案在很多情况下都是正确的。 但是,降级到 tensorflow 1.5 可能不是最佳解决方案,因为例如,您将无法访问 tensorflow 的一些新功能,例如“急切执行”功能。

在我的情况下,我所做的是使用 conda 而不是 pip 安装 tensorflow 1.8。根据我对 conda 和 pip 的一点经验,在将所需文件放置在适当位置时,conda 似乎表现更好。

总之, 而不是pip3 install --upgrade tensorflow, 我使用了conda install tensorflow,它将正确安装最新版本。

如果您没有为 conda 命令安装 Anaconda。从here下载

【讨论】:

【参考方案4】:

如果问题仍然存在,请检查版本编号并确保 cuda 和 TF 兼容。

Check the version numbering here

或者为了更简单的方式,使用 Anaconda

conda create --name new_env_name tensorflow-gpu
activate new_env_name

我成功安装了 TensorFlow GPU 1.12 版(直到撰写本文之日为止)和 Cuda 9.0、GeForce 1050 Ti、Windows 10 和 Python 3.6.7

注意:您已经安装了 CUDA Toolkit(版本 9),以便 TensorFlow 识别您的 GPU

【讨论】:

以上是关于cudnn安装问题求助的主要内容,如果未能解决你的问题,请参考以下文章

求助Tensorflow下跑mnist手写体数据集遇到Cuda compute capability问题

Ubuntu 16.04 上安装 CUDA 10.1和cuDNN v8.0.5

如何验证 CuDNN 安装?

安装 Tensorflow 的问题——不是 CUDA/CuDNN 问题

如何将最新的 cuDNN 安装到 conda?

Tensorflow 2.2 GPU - 安装哪个 cuDNN 库?