Windows에서 TensorFlow는 import tensorflow
문 을 실행 한 후 다음 오류 중 하나 또는 둘 다를보고합니다 .
No module named "_pywrap_tensorflow"
DLL load failed.
답변:
문제는 나를위한 cuDNN 라이브러리였습니다. 어떤 이유로 든 cudnn-8.0-windows10-x64-v6.0이 작동하지 않았습니다. cudnn-8.0-windows10-x64-v5.1을 사용했습니다.
Win10 64 및 Nvidia GTX780M에서 작동하는 설정 :
Windows 32를 실행하는 경우 위에서 언급 한 파일의 32 비트 버전을 가져와야합니다.
제 경우에는 / bin 폴더에있는 "cudnn64_6.dll"파일의 이름을 "cudnn64_5.dll"로 바꿔야 오류가 사라졌습니다. 나는 이것을 알아 내기 위해 쉽게 2 시간을 보냈고 나는 편지의 공식 설치 가이드를 따랐다. 이는 pip (공식적으로 지원됨) 및 conda (커뮤니티 지원됨)를 통한 설치에 해당됩니다.
cudnn64_6.dll
없습니다 cudnn64_5.dll
.
cudnn64_7.dll
을 변경 하여 cudnn64_6.dll
도움 을 줍니다.
두 오류는 모두 MSVCP140.DLL
TensorFlow에 필요한 시스템이 설치되지 않았 음을 나타냅니다 .
이 오류를 수정하려면 :
MSVCP140.DLL
당신에 %PATH%
변수입니다.MSVCP140.DLL
당신에없는 %PATH%
, 설치
비주얼 C ++ 2015 재배포 이 DLL을 포함 (64 버전).CPU 만있는 tensorflow의 경우 :
명령을 사용하여 tensorflow를 설치했습니다.
pip3 install --upgrade tensorflow
이것은 설치 tensorflow 1.7
되었지만 다음을 python 3.6.5 amd64
사용하여 tensorflow를 가져올 수 없습니다 .
import tensorflow as tf
그래서 다음 명령 1.7
을 1.5
사용하여 tensorflow 버전을 다운 그레이드했습니다 .
pip3 install tensorflow==1.5
이렇게하면 이전 버전이 제거되고 1.5
. 이제 작동합니다.
내 CPU 가 필요한 AVX 명령 세트를 지원하지 않는 것 같습니다 .tensorflow 1.7
나는 한 MSVCP140.DLL
환경 변수에서 PATHEXT 변수에 시스템 폴더 및 .DLL에.
AMD CPU에는 Win7 Pro 64 비트가 있고 GPU는 없습니다. https://www.tensorflow.org/install/install_windows 에서 "기본 pip로 설치"의 지침을 따르고있었습니다 . 설치 단계는 괜찮 았지만 tensorflow를 가져 오려는 시도는 악명 높은 결과를 낳았습니다.
ImportError: No module named '_pywrap_tensorflow_internal'
이것은 구성에 따라 관련되지 않은 많은 일이 잘못 될 수있는 상황 중 하나 인 것으로 보이며 모두 동일한 오류로 이어집니다.
제 경우에는 MSVCP140.DLL을 설치하는 것이 정답이었습니다.
당신은 MSVCP140.DLL
이미
C:\Windows\System32\MSVCP140.DLL
있고C:\Windows\SysWOW64\MSVCP140.DLL
.수동으로 설치했는데 불필요했습니다 (재배포 가능 파일은 전체 Visual C ++ 개발 엉망이 아니며 크지 않습니다). 이 스레드의 앞부분에 게시 된 링크를 사용하여 설치합니다. Visual C ++ 2015 redistributable .
또한 C:\Program Files
Windows가 파일 쓰기 방지를 시도하므로 나중에 문제가 발생하기 때문에 Python의 기본 설치 디렉터리를 재정의하고 .
TensorFlow
필요 MSVCP140.DLL
시스템에 설치 될 수있다. 문제를 해결하려면 터미널을 열거 나 다음 링크를 붙여 넣으십시오.
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
이것은 TensorFlow의 CPU 전용 버전을 설치하기위한 것입니다.
구형 하드웨어에서 실행하는 경우 :
tensorflow-gpu 1.6을 사용하는 오래된 CPU로 인해 이와 동일한 오류가 발생할 수 있습니다.
CPU가 2011 년 이전에 만들어진 경우 최대 tensorflow-gpu 버전은 1.5입니다.
Tensorflow 1.6에는 CPU에 대한 AVX 지침이 필요합니다. 여기에서 확인 : Tensorflow Github 문서
AVX 지원 CPU : Wiki AVX CPU
텐서 플로우를 위해 conda 환경에서 내가 한 일 :
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
저에게 문제는 그래픽 카드의 요구 사항과 일치하지 않는 cuDNN 라이브러리였습니다. 6.0 버전을 다운로드했지만 GTX980ti의 경우 nvidia 웹 사이트에서 권장되는 컴퓨팅 기능은 5.1 ( http://developer.nvidia.com/cuda-gpus ) 이었으므로 5.1을 다운로드하고 6.0 버전을 교체했습니다. 작동을 시작했습니다.
많은 시행 착오 끝에 VC ++ 2015 Redistributable , cuDNN DLL 및 기타 모든 종속성이 PATH에서 액세스 가능한지 확인한 후 Tensorflow GPU 가 Python에서만 작동 하는 것처럼 보입니다 3.5.2
(이 글을 쓰는 시점에서).
따라서 사용하는 경우 Anaconda
conda create -n tensorflow-gpu python=3.5.2
activate tensorflow-gpu
pip install tensorflow-gpu
그런 다음 파이썬 인터프리터를 열고
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
속성이있는 장치 0 발견 :
이름 : GeForce 940M
메이저 : 5 마이너 : 0
memoryClockRate (GHz) 1.176
pciBusID 0000 : 06 : 00.0
총 메모리 : 2.00GiB
여유 메모리 : 1.66GiB
크레딧 : 이 깔끔한 가이드
각 Tensorflow의 버전마다 다른 버전의 CuDnn이 필요합니다. 에 www.tensorflow.org , 그들은 설치 안내서 그것에 대해 언급하지 않았다!
제 경우에는 cuDNN 6을 사용하는 tensorflow 버전 1.3을 사용합니다. https://github.com/tensorflow/tensorflow/releases .
Tensorfow 버전과 cuDNN 버전이 서로 일치하는지 확인하십시오.
그리고 cuDNN에 대한 경로 환경을 설정하십시오. 그래도 작동하지 않으면 @ Chris Han 의 답변 을 확인하십시오 .
Windows 시스템에 대한 이 게시물 에서 "DLL로드 실패"문제를 해결하기위한 일반적인 접근 방식을 게시했습니다 . 참고로 :
DLL 종속성 분석기 종속성 을 사용
<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
하여 정확히 누락 된 DLL (?
DLL 옆에 표시됨) 을 분석 하고 확인합니다 . .pyd 파일의 경로는 내가 설치 한 TensorFlow 1.9 GPU 버전을 기반으로합니다. 이름과 경로가 다른 TensorFlow 버전에서 동일한 지 확실하지 않습니다.누락 된 DLL 정보를 찾아 문제를 해결하기 위해 적절한 패키지를 설치하십시오.
All files (*.*)
대신 파일 이름 옆 을 선택 해야합니다 exe files (*.exe, *.dll)
.
DLL을 찾을 수 없습니다. 수정하려면 Visual C ++ 2015 재배포 가능 패키지를 설치합니다.
TensorFlow 릴리스 1.3.0에서는 Cudnn 5.0이이 오류를 제공하므로 Cudnn 5.0 대신 Cudnn 6.0을 사용해야합니다. Cudnn 6.0에 경로 변수를 추가하는 것을 잊지 마십시오. cudnn64_6.dll을 사용하면 Tensorflow가 잘 작동합니다. 아래 링크를 읽으십시오. https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130
내 2 센트 :
CUDA 8.0을 Windows 7에 제대로 설치하는 데 많은 문제가있었습니다. 이전 버전이 설치되어 있었는데 업그레이드하고 싶었 기 때문에이를 제거하고 CUDA 8.0 (텐서 플로우 1.3 용)을 설치하려고했습니다. 매번 설치에 실패했고 CUDA 7.5로 다운 그레이드하려고했고 설치할 수 있었지만 텐서 플로우에 많은 문제가있었습니다 (여기에 설명 된 PATH 문제와 유사). 간단히 말해서, 저에게 효과가 있었던 것은 다음과 같습니다.
1) 모든 NVIDIA 구성 요소 제거 (디스플레이 그래픽 드라이버 제외)
2) CUDA 툴킷 8.0 (및 패치) 다운로드 https://developer.nvidia.com/cuda-downloads
3) CheckSum MD5 (MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533을 사용 했지만 어떤 방식 으로든 사용)를 확인하여 정상인지 확인합니다 (여러 번 발생했습니다. 내 WiFi 라우터가 분명히 있기 때문에 설치 프로그램이 제대로 다운로드되지 않았습니다).
4) CUDA 툴킷 설치 프로그램을 루트로 실행하십시오.
5) cudnn 8.0 v6을 다운로드하고 해당 위치를 PATH 변수 https://developer.nvidia.com/rdp/cudnn-download에 추가합니다.
두통을 돕고 구하는 희망 ...
참고 :이 스크립트는 문제를 디버깅하는 데 많은 도움이되었습니다! (감사합니다 mrry) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
나는 나를 위해 일한 솔루션을 제공하려고 노력할 것입니다. 다양한 문제가 이러한 상황으로 이어질 수있는 것 같습니다.
32 비트 소프트웨어는 64 비트 OS에서 작동합니다. 64 비트 OS에 anaconda-3 (32 비트)를 설치했습니다. 완벽하게 잘 작동했습니다. 내 컴퓨터에 tensorflow를 설치하기로 결정했는데 처음에는 설치되지 않았습니다. conda 환경을 사용하여 tensorflow를 설치했는데이 오류가 발생했습니다.
해결 방법은 64 비트 OS를 실행하는 경우 64 비트 아나콘다를 설치하고 32 비트 OS 인 경우 32 비트 아나콘다를 설치하는 것 입니다. 그런 다음 Windows 용 tensorflow 웹 사이트 (아나콘다 설치)에 언급 된 표준 절차를 따르십시오. 이를 통해 문제없이 tensorflow를 설치할 수있었습니다.
내 대답은 Windows 10에서 다음을 시도했을 때만 Windows 10 사용자를위한 것입니다. 위의 답변 중 일부를 확장하면 이것을 제안합니다. 아나콘다를 사용하는 경우 모든 것을 피하고 명령을 사용하여 anaconda-navigator 를 간단히 설치할 수 있습니다.
conda install -c anaconda anaconda-navigator
그런 다음 명령을 사용하여 명령 프롬프트에서 탐색기를 시작할 수 있습니다.
anaconda-navigator
이 명령을 실행하면 가상 환경을 만들고 python = 3.5.2로 환경을 만들고 gui를 사용하여 검색 상자에서 모듈을 검색하여 tensorflow-gpu 또는 tensorflow 모듈을 설치할 수있는 간단한 GUI가 표시됩니다. 올바른 cuda 파일을 설치하는 방법. anaconda navigator를 사용하는 것이 가장 간단한 해결책입니다.
아나콘다를 사용하지 않는 경우 다음 사항에주의하십시오.
tensorflow-gpu 1.3에는 python 3.5.2, cuda 개발 키트 8.0 및 cudaDNN 6.0이 필요하므로 설치할 때 명령을 실행해야합니다.
pip install tensorflow-gpu==1.3
tensorflow-gpu 1.2.1 이하에는 python 3.5.2, cuda 개발 키트 8.0 및 cudaDNN 5.1이 필요하므로 설치할 때 명령을 실행해야합니다.
pip install tensorflow-gpu==1.2.1
다음은 위의 두 프로세스 모두에 대해 따라야하는 단계입니다. 경로 변수 설정 다음 시스템 변수가 있어야합니다.
CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
CUDA_PATH_V8.0 = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
PATHTEXT는 다른 확장자와 함께 ".DLL"을 포함해야합니다.
".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.DLL"
또한 경로에 다음을 추가하십시오.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64;
C:\Windows\SysWOW64;
C:\Windows\System32
오류가 발생하면 mrry에서 아래 코드를 실행하여 다운로드 할 수 있습니다.이 코드는 설정을 확인하고 문제가 있는지 알려줍니다. https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
참조 : http://blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html
위의 참조는 매우 유용합니다. 이 답변에 대한 개선 사항에 대해 의견을 보내주십시오. 도움이 되었기를 바랍니다. 감사합니다.
2019 년에이 게시물을 찾은 사람들에게는 Python 버전 3.7이 TensorFlow를 지원하지 않기 때문에이 오류가 발생할 수도 있습니다 ( https://www.tensorflow.org/install/pip 참조 ). 따라서 Python 버전을 확인하십시오.
python --version
3.6보다 큰 경우 3.6으로 다운 그레이드해야합니다. Anaconda의 경우 :
conda install python=3.6
그런 다음 TensorFlow를 설치합니다.
pip install tensorflow
Btw, GPU 버전이 없었기 때문에 제 경우에는 CUDA 관련 문제가 없었습니다.
(같은 문제에 란 의 2019년 9월 9일 ) 조사하면서 [SO] : 훈련 tensorflow의 추정 API를 사용하는 동안 오류 .
설정:
오류 :
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow as tf"
Traceback (most recent call last):
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\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:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\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:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
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.
"결함이있는"모듈 ( Dependency Walker 덕분에)을 살펴보면 그 자체가 누락 된 것이 아니라 일부 종속성 ( cu * _ 100 .dll 파일)이 있음이 밝혀졌습니다 .
확인 [SO] : Python Ctypes-dll로드시 OSError : [WinError 193] % 1은 (는) 유효한 Win32 응용 프로그램이 아닙니다 (@CristiFati의 답변) ( 마지막 의 결론 섹션). 이러한 종류의 오류에 대한 자세한 내용을 확인하십시오.
이전 CUDA Toolkit 버전 ( 8 )이 있었고 그 결과 cu * _ 80 .dll 파일이있었습니다.
TensorFlow-GPU 1. 14 .0 ( "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -m pip install --upgrade tensorflow-gpu
)으로 업그레이드 하면 오류가 조금 더 명확 해지고 짧아집니다.
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow as tf"
Traceback (most recent call last):
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\platform\self_check.py", line 75, in preload_check
ctypes.WinDLL(build_info.cudart_dll_name)
File "c:\install\x64\python\python\03.07.03\Lib\ctypes\__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\__init__.py", line 28, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 30, in <module>
self_check.preload_check()
File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\platform\self_check.py", line 82, in preload_check
% (build_info.cudart_dll_name, build_info.cuda_version_number))
ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive
단계 :
위의 단계를 수행하고 올바른 경로를 설정하면 다음과 같이 작동합니다.
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> set PATH=%PATH%;%CUDA_PATH%\bin;f:\Install\x64\NVidia\GPU Computing Toolkit\cuDNN\7.6\bin
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow;print(\"Success!!!\")"
Success!!!