Trên Windows, TensorFlow báo cáo một hoặc cả hai lỗi sau sau khi thực hiện một import tensorflow
câu lệnh:
No module named "_pywrap_tensorflow"
DLL load failed.
Trên Windows, TensorFlow báo cáo một hoặc cả hai lỗi sau sau khi thực hiện một import tensorflow
câu lệnh:
No module named "_pywrap_tensorflow"
DLL load failed.
Câu trả lời:
Vấn đề là Thư viện cuDNN đối với tôi - vì bất kỳ lý do gì mà cudnn-8.0-windows10-x64-v6.0 KHÔNG hoạt động - Tôi đã sử dụng cudnn-8.0-windows10-x64-v5.1 - TẤT CẢ TỐT!
Thiết lập của tôi hoạt động với Win10 64 và Nvidia GTX780M:
Nếu bạn chạy Windows 32, hãy chắc chắn nhận được phiên bản 32 bit của các tệp được đề cập ở trên.
Trong trường hợp của tôi, tệp "cudnn64_6.dll" trong thư mục / bin phải được đổi tên thành "cudnn64_5.dll" để lỗi biến mất. Tôi dễ dàng dành hai giờ để tìm ra điều này và tôi đã làm theo hướng dẫn cài đặt chính thức cho bức thư. Điều này đúng với cài đặt qua pip (được hỗ trợ chính thức) và conda (được cộng đồng hỗ trợ).
cudnn64_6.dll
không cudnn64_5.dll
.
cudnn64_7.dll
để giải quyết vấn đề cudnn64_6.dll
.
Một trong hai lỗi chỉ ra rằng hệ thống của bạn chưa được cài đặt MSVCP140.DLL
mà TensorFlow yêu cầu.
Để khắc phục lỗi này:
MSVCP140.DLL
có trong %PATH%
biến của bạn hay không.MSVCP140.DLL
không có trong của bạn %PATH%
, hãy cài đặt
Visual C ++ 2015 redistributable (phiên bản x64), có chứa DLL này.Đối với dòng tensorflow chỉ với CPU:
Tôi đã cài đặt tensorflow bằng lệnh:
pip3 install --upgrade tensorflow
Điều này được cài đặt tensorflow 1.7
Nhưng không thể nhập tensorflow từ withing python 3.6.5 amd64
bằng cách sử dụng:
import tensorflow as tf
Vì vậy, tôi hạ cấp phiên bản tensorflow từ 1.7
để 1.5
sử dụng lệnh sau:
pip3 install tensorflow==1.5
Điều này đã gỡ cài đặt phiên bản trước và cài đặt 1.5
. Bây giờ nó hoạt động.
Có vẻ như, CPU của tôi không hỗ trợ tập lệnh AVX cần thiết trongtensorflow 1.7
Tôi đã có MSVCP140.DLL
trong các thư mục hệ thống và .DLL trong biến PATHEXT trong Biến môi trường.
Tôi có Win7 Pro 64-bit trên cpu AMD, không có gpu. Tôi đã làm theo hướng dẫn trong "Cài đặt bằng pip gốc" tại https://www.tensorflow.org/install/install_windows . Bước cài đặt diễn ra tốt đẹp nhưng việc cố gắng nhập tensorflow đã tạo ra một tai tiếng:
ImportError: No module named '_pywrap_tensorflow_internal'
Đây dường như là một trong những tình huống mà rất nhiều thứ không liên quan có thể xảy ra sai sót, tùy thuộc vào cấu hình, tất cả đều xảy ra cùng một lỗi.
Trong trường hợp của tôi, cài đặt MSVCP140.DLL là câu trả lời.
Bạn đã có MSVCP140.DLL
nếu
C:\Windows\System32\MSVCP140.DLL
, VÀC:\Windows\SysWOW64\MSVCP140.DLL
.Tôi đã cài đặt nó theo cách thủ công, điều này là không cần thiết (redistributable không phải là toàn bộ mớ hỗn độn phát triển Visual C ++ và không lớn). Sử dụng liên kết được đăng trước đó trong chủ đề này để cài đặt nó: Visual C ++ 2015 redistributable .
Ngoài ra, tôi khuyên bạn nên ghi đè thư mục cài đặt mặc định cho Python và đặt nó ở bất kỳ đâu không có trong đó C:\Program Files
, vì Windows cố gắng ghi các tệp bảo vệ ở đó, điều này gây ra sự cố sau này.
TensorFlow
yêu cầu MSVCP140.DLL
, có thể không được cài đặt trên hệ thống của bạn. Để giải quyết nó, hãy mở terminal en nhập hoặc dán liên kết này:
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
Lưu ý rằng đây là để cài đặt phiên bản TensorFlow chỉ dành cho CPU.
Đối với những người chạy trên phần cứng cũ hơn:
Bạn có thể gặp lỗi tương tự do CPU cũ hơn sử dụng tensorflow-gpu 1.6.
Nếu cpu của bạn được sản xuất trước năm 2011, thì phiên bản tensorflow-gpu tối đa của bạn là 1,5.
Tensorflow 1.6 yêu cầu hướng dẫn AVX trên cpu của bạn. Đã xác minh tại đây: Tài liệu Tensorflow Github
Các CPU hỗ trợ AVX: Các CPU Wiki AVX
Những gì tôi đã làm trong môi trường căn hộ của mình cho tensorflow:
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
Vấn đề đối với tôi là thư viện cuDNN không phù hợp với yêu cầu của cạc đồ họa. Tôi đã tải xuống phiên bản 6.0 nhưng dành cho GTX980ti của mình nhưng khả năng tính toán được khuyến nghị trên trang web nvidia là 5.1 ( http://developer.nvidia.com/cuda-gpus ) vì vậy tôi đã tải xuống 5.1 và thay thế phiên bản 6.0 và ngay khi tôi ' đã thực hiện rằng nó bắt đầu hoạt động.
Sau nhiều thử nghiệm và lỗi và đảm bảo VC ++ 2015 Redistributable , cuDNN DLL và tất cả các phụ thuộc khác đều có thể truy cập được từ PATH, có vẻ như GPU Tensorflow chỉ hoạt động với Python 3.5.2
(tính đến thời điểm viết bài này)
Vì vậy, nếu bạn đang sử dụng Anaconda
conda create -n tensorflow-gpu python=3.5.2
activate tensorflow-gpu
pip install tensorflow-gpu
Sau đó, mở trình thông dịch python và xác minh
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Đã tìm thấy thiết bị 0 với các thuộc tính:
tên: GeForce 940M
lớn: 5 nhỏ: 0
memoryClockRate (GHz) 1.176
pciBusID 0000: 06: 00.0
Tổng bộ nhớ: 2.00GiB
Bộ nhớ trống: 1.66GiB
Tín dụng: hướng dẫn gọn gàng này
Đối với mỗi phiên bản của Tensorflow, nó yêu cầu phiên bản CuDnn khác nhau. Trên www.tensorflow.org , họ không đề cập đến điều đó trong hướng dẫn cài đặt!
Trường hợp của tôi sử dụng tensorflow phiên bản 1.3 sử dụng cuDNN 6. https://github.com/tensorflow/tensorflow/releases .
Vui lòng kiểm tra phiên bản tensorfow và phiên bản cuDNN của bạn nếu chúng khớp với nhau.
Và hãy thiết lập môi trường đường dẫn cho cuDNN, nếu nó vẫn không hoạt động, vui lòng kiểm tra câu trả lời từ @ Chris Han .
Tôi đã đăng một phương pháp chung để khắc phục sự cố "DLL tải không thành công" trong bài đăng này trên hệ thống Windows. Để tham khảo:
Sử dụng công cụ phân tích phụ thuộc DLL Phụ thuộc để phân tích
<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
và xác định chính xác DLL bị thiếu (được biểu thị bằng dấu?
bên cạnh DLL). Đường dẫn của tệp .pyd dựa trên phiên bản GPU TensorFlow 1.9 mà tôi đã cài đặt. Tôi không chắc liệu tên và đường dẫn có giống nhau trong các phiên bản TensorFlow khác hay không.Tìm kiếm thông tin của DLL bị thiếu và cài đặt gói thích hợp để giải quyết sự cố.
All files (*.*)
bên cạnh tên tệp thay vì chỉ exe files (*.exe, *.dll)
.
Người ta có thể muốn giữ Powershell / cmd mở trên Windows. Tôi đã dành thời gian hợp lý cho đến khi quyết định đóng và mở lại Powershell của mình chỉ để nhận ra rằng tôi đã làm đúng mọi thứ.
Không tìm thấy dll. Cài đặt Visual C ++ 2015 redistributable để khắc phục.
Vấn đề là Thư viện cuDNN cho tôi. Tôi đã có thể chạy mã kiểm tra sau khi thêm thư mục (có thể là thư mục bin) của cuDNN DLL (không phải tệp LIB) trong Windows PATH.
Để tham khảo, tôi đã cài đặt TensorFlow từ nguồn bằng PIP và hệ điều hành của tôi: Windows 7 và IDE: Visual Studio 2015.
Với bản phát hành TensorFlow 1.3.0, bạn cần sử dụng Cudnn 6.0 thay vì Cudnn 5.0 vì Cudnn 5.0 đang mắc lỗi này. Đừng quên thêm biến đường dẫn vào Cudnn 6.0. Với cudnn64_6.dll thì Tensorflow của bạn sẽ hoạt động tốt. Đọc liên kết bên dưới. https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130
Theo quan điểm của tôi:
Tôi đã gặp rất nhiều sự cố khi cố gắng cài đặt CUDA 8.0 đúng cách trên Windows 7. Tôi đã cài đặt phiên bản trước và muốn nâng cấp nên tôi đã gỡ cài đặt nó và cố gắng cài đặt CUDA 8.0 (cho tensorflow 1.3). Cài đặt không thành công mỗi lần một lần, tôi đã cố gắng hạ cấp xuống CUDA 7.5 và có thể cài đặt nó nhưng gặp rất nhiều vấn đề với tensorflow (tương tự như vấn đề PATH được mô tả ở đây). Câu chuyện ngắn: điều làm việc cho tôi là:
1) Gỡ cài đặt MỌI thành phần NVIDIA (ngoại trừ trình điều khiển đồ họa hiển thị)
2) Tải xuống bộ công cụ CUDA 8.0 (và bản vá) https://developer.nvidia.com/cuda-downloads
3) Kiểm tra CheckSum MD5 (Tôi đã sử dụng MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533 nhưng bất kỳ điều nào sẽ xảy ra) để đảm bảo rằng chúng OK (đã xảy ra vài lần như vậy trình cài đặt không được tải xuống đúng cách vì bộ định tuyến WiFi của tôi dường như).
4) Chạy trình cài đặt bộ công cụ CUDA dưới dạng root
5) tải xuống cudnn 8.0 v6 và thêm vị trí của nó vào biến PATH https://developer.nvidia.com/rdp/cudnn-download
Hy vọng điều đó sẽ hữu ích và đỡ đau đầu ...
LƯU Ý: Tập lệnh này đã giúp tôi rất nhiều để gỡ lỗi sự cố! (Cảm ơn mrry) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Tôi sẽ cố gắng đưa ra giải pháp phù hợp với tôi. Có vẻ như các tập hợp vấn đề khác nhau có thể dẫn đến tình trạng này.
Phần mềm 32 bit hoạt động trên hệ điều hành 64 bit. Tôi đã cài đặt anaconda-3 (32 bit) trong hệ điều hành 64 bit của mình. Nó đã hoạt động hoàn toàn tốt. Tôi đã quyết định cài đặt tensorflow trong máy của mình và nó sẽ không cài đặt lúc đầu. Tôi đang sử dụng môi trường conda để cài đặt tensorflow và gặp lỗi này.
Giải pháp là nếu bạn đang chạy hệ điều hành 64 bit, hãy cài đặt 64 bit anaconda và nếu hệ điều hành 32 bit thì hãy cài đặt anaconda 32 bit . Sau đó, làm theo quy trình tiêu chuẩn được đề cập trong trang web tensorflow dành cho windows (cài đặt anaconda). Điều này giúp bạn có thể cài đặt tensorflow mà không gặp bất kỳ vấn đề gì.
câu trả lời của tôi chỉ dành cho người dùng windows 10 vì tôi đã thử những cách sau trên windows 10. Mở rộng một số câu trả lời ở trên, tôi đề xuất điều này: Nếu bạn đang sử dụng anaconda thì bạn có thể tránh mọi thứ và chỉ cần cài đặt anaconda-navigation bằng lệnh
conda install -c anaconda anaconda-navigator
Sau đó, bạn có thể khởi chạy trình điều hướng từ dấu nhắc lệnh bằng lệnh
anaconda-navigator
Khi chạy lệnh này, bạn nhận được một gui đơn giản, nơi bạn có thể tạo môi trường ảo, tạo môi trường với python = 3.5.2 và cài đặt mô-đun tensorflow-gpu hoặc tensorflow bằng cách tìm kiếm mô-đun trong hộp tìm kiếm bằng gui, nó cũng sẽ được xử lý cài đặt các tệp cuda chính xác cho bạn. Sử dụng điều hướng anaconda là giải pháp đơn giản nhất.
Nếu bạn không sử dụng anaconda thì hãy quan tâm đến những điều sau
tensorflow-gpu 1.3 yêu cầu python 3.5.2, bộ phát triển cuda 8.0 và cudaDNN 6.0, do đó khi cài đặt hãy đảm bảo bạn chạy lệnh
pip install tensorflow-gpu==1.3
tensorflow-gpu 1.2.1 trở xuống yêu cầu python 3.5.2, bộ phát triển cuda 8.0 và cudaDNN 5.1 do đó khi cài đặt hãy đảm bảo bạn chạy lệnh
pip install tensorflow-gpu==1.2.1
Dưới đây là các bước bạn cần làm theo cho cả hai quy trình trên Thiết lập các biến đường dẫn Bạn phải có các biến hệ thống sau
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 của bạn phải bao gồm ".DLL" cùng với các phần mở rộng khác
".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.DLL"
Đồng thời Thêm phần sau vào đường dẫn của bạn
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
Nếu bạn gặp lỗi, bạn có thể tải xuống đoạn mã dưới đây bằng mrry, mã này sẽ kiểm tra thiết lập của bạn và cho bạn biết có vấn đề gì không https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Tài liệu tham khảo: http://blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html
Tài liệu tham khảo trên là rất hữu ích. Hãy bình luận để cải thiện câu trả lời này. Hy vọng điều này sẽ giúp, Cảm ơn.
Đối với những người tìm thấy bài đăng này vào năm 2019, lỗi này cũng có thể xảy ra vì phiên bản Python 3.7 không hỗ trợ TensorFlow (xem https://www.tensorflow.org/install/pip ). Vì vậy, hãy kiểm tra phiên bản Python:
python --version
Trong trường hợp nó lớn hơn 3,6, nó nên được hạ cấp xuống 3,6. Đối với Anaconda:
conda install python=3.6
Sau đó, cài đặt TensorFlow.
pip install tensorflow
Btw, tôi không có phiên bản GPU, vì vậy không có vấn đề liên quan đến CUDA trong trường hợp của tôi.
Gặp phải vấn đề tương tự ( vào ngày 09/09/2019 ) khi đang điều tra [SO]: Lỗi khi đào tạo sử dụng API công cụ ước tính trong tensorflow .
Thiết lập:
Lỗi :
[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.
Nhìn vào mô-đun "bị lỗi" (nhờ Dependency Walker ), nó chỉ ra rằng bản thân nó không bị thiếu, mà là một số phụ thuộc của nó (các tệp .dll cu * _ 100 ).
Kiểm tra [SO]: Python Ctypes - loading dll ném OSError: [WinError 193]% 1 không phải là ứng dụng Win32 hợp lệ (câu trả lời của @ CristiFati) (phần Kết luận ở cuối) để biết thêm chi tiết về loại lỗi này.
Tôi đã có phiên bản Bộ công cụ CUDA cũ hơn ( 8 ) và do đó, các tệp cu * _ 80 .dll .
Nâng cấp lên TensorFlow-GPU 1. 14 .0 ( "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -m pip install --upgrade tensorflow-gpu
), đã làm cho lỗi rõ ràng hơn một chút (và cũng ngắn hơn):
[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
Các bước :
Sau các bước trên và cũng như thiết lập các đường dẫn chính xác, nó đã hoạt động:
[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!!!