当前位置 主页 > 服务器问题 > Linux/apache问题 >

    tensorflow-gpu安装的常见问题及解决方案

    栏目:Linux/apache问题 时间:2020-01-20 21:17

    装tensorflow-gpu的时候经常遇到问题,自己装过几次,经常遇到相同或者类似的问题,所以打算记录一下,也希望对其他人有所帮助

    基本信息

    tensorflow-gpu pip安装(virtualenv等虚拟安装实质也是pip安装,只是建了个独立的环境,不会影响系统环境,查问题比较容易,最多重新再创建一个干净的环境再来)

    安装完之后会用import tensorflow看是否安装成功,结果报错,主要有碰到下面两大类报错信息:

    1.ImportError: DLL load failed: 找不到指定的模块 之pywrap_tensorflow.py

    报错信息里面有大量的pywrap_xxx相关的脚本报错:

    Traceback (most recent call last):
     File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
     from tensorflow.python.pywrap_tensorflow_internal import *
     File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
     _pywrap_tensorflow_internal = swig_import_helper()
     File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
     _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
     File "E:\study\machinelearning\ENV\lib\imp.py", line 242, in load_module
     return load_dynamic(name, filename, file)
     File "E:\study\machinelearning\ENV\lib\imp.py", line 342, in load_dynamic
     return _load(spec)
    ImportError: DLL load failed: 找不到指定的模块。

    这类错误出现的最多,主要有几大类原因:

    (1)Microsoft Visual C++ 2015 Redistributable Update 3 没有装

    这个是自己第一次装的时候碰到的,下载 vc_redist.x64.exe 安装之后就ok了

    再生波澜

    自己今天再装的时候,下载下来发现安装不了,看日志是说我的vs版本比较新,所以不能装。这个时候可以可以看看自己本机的system32下面有没有MSVCP140.DLL这个文件

    其他解决方案

    有些网友说用的比较新的tensorflow,装了2017的Redistributable包就好了,你也可以试试

    我再装完2017的包之后,并且检查自己系统中已经有了MSVCP140.DLL文件依旧报同样的错误

    (2)cuda和cudnn版本不一致

    这个问题也是非常多的,我装了很多次的cuda基本上没有安装失败过,但是遇到和cudnn版本不一致的情况。因为下载的cuda默认是最新版本的cuda10.0,而我下载的cudnn当时用的旧的,也就是给cuda9.0的,所以后面换了一下也就解决问题了

    cuda下载

    在这里插入图片描述

    我这里默认点完自己系统的配置(win10x64)得到的是最新的cuda10-win10,可以点击最右边的Legacy Releases看到更早一点的版本

    cuda安装和验证

    一路next貌似没遇到过啥问题

    验证的话:在命令行下面输入nvcc -V,看是否OK

    另外sample下面的两个是deviceQuery.exe和bandwidthTest.exe执行都没有出现问题过

    cudnn下载

    要登录nvidia developer账号

    在这里插入图片描述

    点开最下面的Archived cuDNN Releases可以看到更多的版本,因为我下载的是cuda-9.0,稳妥起见,我下载的cudnn版本是:Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0

    按照道理来讲这里的Download cuDNN v7.5.0 (Feb 21, 2019), for CUDA 9.0