亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0

系統 1928 0

存在的問題 ? ? ??

ImportError: DLL load failed: 找不到指定的模塊。

安裝tensorflow-gpu很容易因為版本不兼容和缺少運行時環境(動態鏈接庫.dll)而出問題,但是我按正確版本安裝(期間更換了tensorflow和cuda、cudnn的版本)還是多次出現了“ImportError: DLL load failed: 找不到指定的模塊。”這個問題。我發現網上(百度/谷歌)有很多答案,有詳盡的安裝過程和自己的解決方法,卻仍然人沒說到點子上。這個問題困擾了我一天,出錯原因和解決方法放到后面講。

報錯信息如下:

            
              Python 3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
Traceback (most recent call last):
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in 
              
                
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in 
                
                  
    _pywrap_tensorflow_internal = swig_import_helper()
  File "E:\Develop\Anaconda3\envs\tf2.0\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:\Develop\Anaconda3\envs\tf2.0\lib\imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: 找不到指定的模塊。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "
                  
                    ", line 1, in 
                    
                      
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\site-packages\tensorflow\__init__.py", line 40, in 
                      
                        
    from tensorflow.python.tools import module_util as _module_util
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\site-packages\tensorflow\python\__init__.py", line 49, in 
                        
                          
    from tensorflow.python import pywrap_tensorflow
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in 
                          
                            
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in 
                            
                              
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in 
                              
                                
    _pywrap_tensorflow_internal = swig_import_helper()
  File "E:\Develop\Anaconda3\envs\tf2.0\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:\Develop\Anaconda3\envs\tf2.0\lib\imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "E:\Develop\Anaconda3\envs\tf2.0\lib\imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: 找不到指定的模塊。


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/errors

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.
                              
                            
                          
                        
                      
                    
                  
                
              
            
          

?

OSError: [WinError 126] 找不到指定的模塊

除了這個問題,我還出現過的問題是 找不到cudart64_100.dll

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第1張圖片

這個Error就好解決了,因為dll文件的名字都告訴你了。一般是因為

1.cuda/cudnn版本和tensorflow版本不一致, 導致缺少dll

如果你安裝的是cuda10.1,而"\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin"里面是cudart64_101.dll,當然會找不到cudart64_100.dll了。。。這時候你要么再裝一個cuda10.0(cudnn也要換),要么更換成支持cuda10.1的tensorflow版本(目前tensorflow1.14.0可以支持,其它版本請自行確認)

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第2張圖片

?

?2.環境變量沒有配置對。

如果你安裝了cuda10.0、cudnn7.6.0,在安裝目錄(\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin)下面搜索是可以找到這個文件的。

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第3張圖片

這時候只要配置好環境變量就可以啦。(Tips:更改CUDA_PATH的路徑可以自由切換cuda版本)

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第4張圖片

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第5張圖片

?

解決方法(ImportError: DLL load failed)

在windows系統上安裝tensorflow-gpu,很多人遇到這個問題,網上也有很多解決方法,我看了好多篇,解決方法大概有以下幾種。

1. 降版本安裝tensorflow和cuda,或者換個教程全部卸載重裝(如果還是較新版本的tensorflow,問題依然存在emmmm)。

? ? ? ?有的人是“不小心”換成了tensorflow(cpu)版,當然沒有問題了,也不用cuda/cudnn了。只不過這不是我們的初衷(cpu訓練神經網絡實在是太慢了,不然花錢買那么貴的顯卡干嘛...)

? ? ? ?另一種情況是 降版本之后的tensorflow-gpu不需要較新的動態鏈接庫(.dll文件)了,系統中已有的Visual C++ 庫運行時組件可以滿足運行需要;或者你用的處理器較老(有網友提到)?,tensorflow不支持,Python版本較老?不適用于較新的tensorflow及其依賴庫等等,這個就要仔細一點了,網上有相應的安裝教程,寫的很好。

2. 安裝Microsoft visual studio 2015/2017

? ? ? Microsoft visual studio恰好提供了相應的tensorflow版本需要的 Visual C++ 庫運行時組件 ,tensorflow得以運行成功。其實裝visual studio肯定不是必須的,不然tensorflow官方說明里面就提到了,visual studio是個集成開發環境(很大,只選基礎的C++開發環境都要8G),怎么可能用tensorflow-gpu還必須裝它,無非是系統缺少相應的運行時組件。

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第6張圖片

? ? ? ?下面這倆組件原來是2015版本的,tensorflow-gpu1.14.0安裝完成后,導入出錯。我昨晚裝了visual studio 2019以后被替換為2015-2019版本的了,然后以為是vs版本問題又卸載,重裝了visual stdio2017,這個組件也沒有變。現在tensorflow1.14.0(root環境)和tensorflow2.0(我用conda創建了個tf2.0環境)就都可以用了。你可以在控制面板里查看你的Visual C++ 依賴庫版本。

卸載visual stdio 2017,再次檢測tensorflow是否可以導入。

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第7張圖片

已卸載,Microsoft Visual C++ 2015-2019?Redistributable (x64)和(x86)組件還在。

tensorflow依然可用。

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第8張圖片

3. 安裝Microsoft Visual C++ 2015 Redistributable (x64)

? ? ? ?有網友(https://cloud.tencent.com/developer/news/361221)提到自己試了很多解決方法沒有效果,最后安裝了一下Microsoft Visual C++ 2015 Redistributable (x86)、Microsoft Visual C++ 2015 Redistributable (x64)錯誤就完全消失了,可以import tensorflow了。這里就是把缺少的C++運行時組件裝到Windows系統里了,至于為什么gpu版必須要用這個組件,我覺得可能是tensorflow用gpu訓練神經網絡要調用cuda提供的驅動及相應的系統底層函數(動態鏈接庫.dll)。網友(@藍三金https://blog.csdn.net/qq_20084101/article/details/89148256)在Ubuntu環境下,直接用anaconda裝好tensorflow2.0 (pip install tensorflow-gpu==2.0.0-beta0)、cudnn、cudatoolkit (conda install cudnn cudatoolkit numba)、numba (用于支持 Anaconda 找到安裝的 cudatoolkit 和 cudnn),一條龍服務看著真舒服,可是我在win10下卸載anaconda跟著教程重新來了一遍還是那個錯誤... 不得不說Windows確實很坑,等我換了電腦就用雙系統裝Linux......

正確的解決方法

? ? ? ? ? ?做好TensorFlow和cuda/cudnn的版本匹配,然后安裝相應的 Visual C++ 庫運行時組件 就可以了。

這是Microsoft Visual C++ Redistributable for Visual Studio 2019的下載地址 https://visualstudio.microsoft.com/zh-hans/downloads/?utm_medium=post-banner&utm_source=microsoft.com&utm_campaign=channel+banner&utm_content=launch+vs2019&rr=https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fdownload%2Fdeveloper-tools

?

這是Microsoft Visual C++ 2015 Redistributable Update 3的下載地址https://www.microsoft.com/en-us/download/details.aspx?id=53587 ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第9張圖片

?

如果你 想知道到底缺了哪些dll

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第10張圖片

可以通過Visual Studio的dumpbin.exe找到依賴的DLL(把下面的路徑替換為你dumpbin.exe的路徑和tensorflow的安裝路徑),檢測加載module時出現錯誤的“_pywrap_tensorflow_internal.pyd”所需要的dll文件。( pyd 是一種Python動態模塊,相當于C語言中的dll 文件 ,只是改了后綴為 pyd

            
              "E:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\Hostx64\x64\dumpbin.exe" /dependents E:\Develop\Anaconda3\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
            
          

?

我的結果是下面這樣:

            
              Microsoft (R) COFF/PE Dumper Version 14.21.27702.2
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file E:\Develop\Anaconda3\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd

File Type: DLL

  Image has the following dependencies:

    cusparse64_100.dll
    cusolver64_100.dll
    cublas64_100.dll
    cudnn64_7.dll
    cufft64_100.dll
    curand64_100.dll
    cudart64_100.dll
    python37.dll
    ADVAPI32.dll
    MSVCP140.dll
    WS2_32.dll
    SHLWAPI.dll
    KERNEL32.dll
    VCRUNTIME140.dll
    api-ms-win-crt-runtime-l1-1-0.dll
    api-ms-win-crt-math-l1-1-0.dll
    api-ms-win-crt-stdio-l1-1-0.dll
    api-ms-win-crt-string-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll
    api-ms-win-crt-utility-l1-1-0.dll
    api-ms-win-crt-environment-l1-1-0.dll
    api-ms-win-crt-time-l1-1-0.dll
    api-ms-win-crt-locale-l1-1-0.dll
    api-ms-win-crt-filesystem-l1-1-0.dll
    api-ms-win-crt-convert-l1-1-0.dll

  Summary

      457000 .data
        1000 .gfids
        2000 .nvFatBi
    29E66000 .nv_fatb
      289000 .pdata
     2198000 .rdata
       87000 .reloc
     63F0000 .text
        1000 .tls
       11000 _RDATA
            
          


然后搜索上述DLL,找到缺失的dll

            
              (tf2.0) C:\Users\DELL>where SHLWAPI.dll
C:\Windows\System32\shlwapi.dll

(tf2.0) C:\Users\DELL>where VCRUNTIME140.dll
E:\Develop\Anaconda3\envs\tf2.0\vcruntime140.dll
E:\Develop\Anaconda3\envs\tf2.0\Library\bin\vcruntime140.dll
E:\Develop\Anaconda3\vcruntime140.dll
E:\Develop\Anaconda3\Library\bin\vcruntime140.dll
C:\Windows\System32\vcruntime140.dll

(tf2.0) C:\Users\DELL>where cusparse64_100.dll
E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin\cusparse64_100.dll

            
          

這是我故意改了文件名

            
              (tf2.0) C:\Users\DELL>where cublas64_100.dll
信息: 用提供的模式無法找到文件。
            
          

然后搜索確定DLL來自于哪里,裝上對應版本的模塊(可能是缺少Visual C++ 庫運行時組件、cuda版本不一致)。

方法來源?https://github.com/tensorflow/tensorflow/issues/7623

?

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第11張圖片 ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第12張圖片

安裝成功界面

2.0.0版本

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第13張圖片

1.14.0版本

ImportError: DLL load failed 高效解決方法 Win10+Python3.7+Anaconda2019.03+tensorflow-gpu2.0/1.14+CUDA10.0_第14張圖片

?

以上是我在安裝過程中的經歷和體會,如有錯誤請指正, 祝大家安裝順利


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲国产天堂久久精品网 | 国产精品一区二区国产 | 国产亚洲99影院 | 新久草在线视频 | 欧美视频在线看 | 欧美午夜精品一区二区三区 | 国产精品成人一区二区不卡 | 欧美久久天天综合香蕉伊 | 成人久久18网站 | 国产在线观看精品香蕉v区 国产在线观看美女福利精 国产在线观看午夜不卡 | 亚洲成人18 | 深夜视频在线免费 | 国内久久久久影院精品 | 无遮挡又黄又爽又色的视频免费 | 色黄网站青青草原免费 | 亚洲精品va | 日产国语一区二区三区在线看 | 亚洲桃色视频 | 4hu四虎永久免在线视看 | 久草福利站| 色婷婷精品| 91在线网址 | 国产精品久久久久久一区二区 | 香蕉视频国产在线观看 | 午夜不卡视频 | jizz中国zz女人18 | 九久久 | 青草久久久 | 两性影院| 亚洲黄色在线观看视频 | 国产精品剧情原创麻豆国产 | 亚洲国产精品久久精品成人 | 中文字幕免费在线看线人动作大片 | 在线视频不卡国产在线视频不卡 | 亚洲精品成人a在线观看 | 日日天天干 | 成人免费视频视频在线不卡 | 涩久久| 99久久综合 | 3d动漫精品成人一区二区三 | 成人嫩草研究院网站进 |