今年的軟件杯中,我們比賽選題是關於深度學習的內容,在配置Pycharm里面引用電腦GPU時候出現“ImportError: DLL load failed: 找不到指定的模塊。”的問題,我踩坑踩了很多,才找到的解決辦法,分享一下:
首先說一下環境,我的配置是win10 + python3.6 + pycharm + tensorflow-gpu1.3 + CUDA8.0+cudnn-8.0-windows10-x64-v5.1
版本之間是有配置要求的,有的版本和版本之間是會出現問題的,所以在下載安裝時候一定要看好自己電腦里面已有的配置,配置信息可以在https://github.com/fo40225/tensorflow-windows-wheel網址查看:
各個配置之間的版本都寫得很好,可以進行下載,安裝。
安裝好以后,記得CUDA是要配置環境變量的,將cudnn里面的文件拷貝到CUDA文件路徑下,安裝時候,他會自己默認安裝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0下
將下載好的cudnn里面文件放到相同文件夾名字下面就好。
然后在pycharm里面下載tensorflow-gpu,這里也要需要注意版本問題,下載好以后如果出現“ImportError: DLL load failed: 找不到指定的模塊,就在https://github.com/fo40225/tensorflow-windows-wheel里面下載相應的wheel文件,然后cmd里面輸入“pip install ”然后打開保存下載好whl文件的文件夾,將文件拖到cmd里面即可
然后回車就行。后面就會成功啦
這里給大家獻上配置代碼,直接pycharm里面運行,根據i下面的報錯信息也好下載你需要的版本文件:
import ctypes import imp import sys def main(): try: import tensorflow as tf print("TensorFlow successfully installed.") if tf.test.is_built_with_cuda(): print("The installed version of TensorFlow includes GPU support.") else: print("The installed version of TensorFlow does not include GPU support.") sys.exit(0) except ImportError: print("ERROR: Failed to import the TensorFlow module.") candidate_explanation = False python_version = sys.version_info.major, sys.version_info.minor print("\n- Python version is %d.%d." % python_version) if not (python_version == (3, 5) or python_version == (3, 6)): candidate_explanation = True print("- The official distribution of TensorFlow for Windows requires " "Python version 3.5 or 3.6.") try: _, pathname, _ = imp.find_module("tensorflow") print("\n- TensorFlow is installed at: %s" % pathname) except ImportError: candidate_explanation = False print(""" - No module named TensorFlow is installed in this Python environment. You may install it using the command `pip install tensorflow`.""") try: msvcp140 = ctypes.WinDLL("msvcp140.dll") except OSError: candidate_explanation = True print(""" - Could not load 'msvcp140.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. You may install this DLL by downloading Microsoft Visual C++ 2015 Redistributable Update 3 from this URL: https://www.microsoft.com/en-us/download/details.aspx?id=53587""") try: cudart64_80 = ctypes.WinDLL("cudart64_80.dll") except OSError: candidate_explanation = True print(""" - Could not load 'cudart64_80.dll'. The GPU version of TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 8.0 from this URL: https://developer.nvidia.com/cuda-toolkit""") try: nvcuda = ctypes.WinDLL("nvcuda.dll") except OSError: candidate_explanation = True print(""" - Could not load 'nvcuda.dll'. The GPU version of TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Typically it is installed in 'C:\Windows\System32'. If it is not present, ensure that you have a CUDA-capable GPU with the correct driver installed.""") cudnn5_found = False try: cudnn5 = ctypes.WinDLL("cudnn64_5.dll") cudnn5_found = True except OSError: candidate_explanation = True print(""" - Could not load 'cudnn64_5.dll'. The GPU version of TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Note that installing cuDNN is a separate step from installing CUDA, and it is often found in a different directory from the CUDA DLLs. You may install the necessary DLL by downloading cuDNN 5.1 from this URL: https://developer.nvidia.com/cudnn""") cudnn6_found = False try: cudnn = ctypes.WinDLL("cudnn64_6.dll") cudnn6_found = True except OSError: candidate_explanation = True if not cudnn5_found or not cudnn6_found: print() if not cudnn5_found and not cudnn6_found: print("- Could not find cuDNN.") elif not cudnn5_found: print("- Could not find cuDNN 5.1.") else: print("- Could not find cuDNN 6.") print(""" The GPU version of TensorFlow requires that the correct cuDNN DLL be installed in a directory that is named in your %PATH% environment variable. Note that installing cuDNN is a separate step from installing CUDA, and it is often found in a different directory from the CUDA DLLs. The correct version of cuDNN depends on your version of TensorFlow: * TensorFlow 1.2.1 or earlier requires cuDNN 5.1. ('cudnn64_5.dll') * TensorFlow 1.3 or later requires cuDNN 6. ('cudnn64_6.dll') You may install the necessary DLL by downloading cuDNN from this URL: https://developer.nvidia.com/cudnn""") if not candidate_explanation: print(""" - All required DLLs appear to be present. Please open an issue on the TensorFlow GitHub page: https://github.com/tensorflow/tensorflow/issues""") sys.exit(-1) if __name__ == "__main__": main()
在配置好以后,會出現gpu可以用的好消息啦。