美文网首页tensorflow
tensorflow安装摘要

tensorflow安装摘要

作者: b948f0a1cc6e | 来源:发表于2018-07-07 15:14 被阅读0次

    适合问题

    主要是对cpu不兼容问题安装tensorflow不成功的简单纪要。主要表现形式为

    ImportError: DLL load failed with error code
    ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
    

    如果遇到相似问题,可以往下看。当然,最后会梳理一遍通用的gpu版本的tensorflow安装流程。

    安装问题

    今天安装tensorflow的时候遇到了一些坑,记录一下。原来笔记本实在太旧了,打dota1都卡,买了淘宝爆款低配吃鸡主机,然后在这个主机上装tensorflow遇到了一个坑。tensorflow_gpu的安装网上很多,按照步骤装了vs,cuda,cudnn,在导入tensorflow的时候,仍然报错如下:

    
    Traceback (most recent call last):
      File "C:\Users\Alan\AppData\Local\Programs\Python\Python36\lib\site-packages\t
    ensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper
        return importlib.import_module(mname)
      File "C:\Users\Alan\AppData\Local\Programs\Python\Python36\lib\importlib\__ini
    t__.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 with error code -1073741795
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:\Users\Alan\AppData\Local\Programs\Python\Python36\lib\site-packages\t
    ensorflow\python\pywrap_tensorflow.py", line 58, in <module>
        from tensorflow.python.pywrap_tensorflow_internal import *
      File "C:\Users\Alan\AppData\Local\Programs\Python\Python36\lib\site-packages\t
    ensorflow\python\pywrap_tensorflow_internal.py", line 21, in <module>
        _pywrap_tensorflow_internal = swig_import_helper()
      File "C:\Users\Alan\AppData\Local\Programs\Python\Python36\lib\site-packages\t
    ensorflow\python\pywrap_tensorflow_internal.py", line 20, in swig_import_helper
        return importlib.import_module('_pywrap_tensorflow_internal')
      File "C:\Users\Alan\AppData\Local\Programs\Python\Python36\lib\importlib\__ini
    t__.py", line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
    
    

    后来删了gpu版本,直接pip cpu版本的,仍然报同样的错误。我就觉得大事不妙。之前在实验室和公司电脑上都装过tensorflow,没这问题啊。
    后来在stackoverflow上找到相同的毛病,回答问题的人引用了github的回答:

    https://github.com/tensorflow/tensorflow/issues/17386

    The CPU lack AVX instruction can cause this error.
    I have built tensorflow wheel without AVX.
    [https://github.com/fo40225/tensorflow-windows-wheel/tree/master/1.6.0/py36/CPU/sse2]>(https://github.com/fo40225/tensorflow-windows-wheel/tree/master/1.6.0/py36/CPU/sse2)
    I wish this .whl may help you.

    发现原来是cpu不支持avx指令集会导致这种错误。我用cpuz查看我的爆款吃鸡主机cpu是xeon 5560,百度知道是09年的洋垃圾。sandy bridige架构后的cpu才支持avx指令集,pip默认安装的tensorflow都需要avx的支持。但是回答者提供的是cpu版本的wheel包,我想要的是gpu版本的。找了半天,在github上找到了tensorflow-windows-wheel的下载:

    https://github.com/fo40225/tensorflow-windows-wheel

    Path Compiler CUDA/cuDNN SIMD Notes
    1.8.0\py36\CPU\sse2 VS2017 15.4 No x86_64 Python 3.6
    1.8.0\py36\CPU\avx2 VS2017 15.4 No AVX2 Python 3.6
    1.8.0\py36\GPU\cuda91cudnn71sse2 VS2017 15.4 9.1.85.3/7.1.3 x86_64 Python 3.6/Compute 3.0

    提供的自定义的wheel包可以下载,针对我的问题,找了一个sse2的指令集编译的tensorflow的gpu包就可以了。

    安装流程

    具体的安装步骤,网上随便搜。这里主要简要记录安装流程。
    需要

    • python(根据上面的wheel包,需要3.6或2.7的python,没有别的可选)
    • visual studio(10,12,13,15,17皆可,要在cuda前装,因为装cuda的时候会根据vs的版本装相应的一个东西)
    • CUDA(上面要求9.1)
    • cuDnn(既然cuda装了9.1的,cuDnn当然也是9.1的了)
    • tensorflow的wheel包(上面给的网址下载)
      除了最后一个需求,上面的步骤和网上其他的安装教程都差不多。注意版本要求,因为默认都提供最新的版本,像CUDA9.1就得从历史版本里找,注意一下就行啦。

    我的安装步骤

    • anaconda3_5.2,这是python3.6的
    • 网上down的visual studio 2013安装包(vs太大了,就装了c函数库,sql server,silverlight啥的都没装)
    • CUDA Toolkit 9.1(选择下载包:Windows -> x86_64 ->7(win 7) -> exe(local) -> Base Installer)(自定义安装,只要装CUDA就行,experience是录游戏视频的,其他都是驱动,一个显卡驱动,3d眼镜视频的驱动,hdmi的驱动还有个physx是图像加速)
    • 下载CUDA包的时候,除了一个Base Installer,还有几个patch补丁,一并装了。
    • 下载cuDnn,找到对应CUDA版本的,是个压缩包,解压,然后就3个文件夹合并到CUDA目录下 。
    • 最好在环境变量里将CUDA PATH(装完CUDA后自己会有)加上到/bin和/lib/x_64,不然可能找不到cuDnn,不确定啊。
    • 在cmd里cd到tensorflow的wheel包的下载地址,pip install ***.whl

    相关文章

      网友评论

        本文标题:tensorflow安装摘要

        本文链接:https://www.haomeiwen.com/subject/itpwuftx.html