У Windows TensorFlow повідомляє про одну або обидві з наведених нижче помилок після виконання import tensorflow
оператора:
No module named "_pywrap_tensorflow"
DLL load failed.
У 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-розрядні версії вищезазначених файлів.
У моєму випадку файл "cudnn64_6.dll" у папці / bin повинен був бути перейменований на "cudnn64_5.dll", щоб помилка зникла. Я легко витратив дві години, щоб це зрозуміти, і дотримався офіційного посібника з встановлення листа. Це справедливо для встановлення через pip (офіційно підтримується) та conda (підтримується спільнотою).
cudnn64_6.dll
НЕ cudnn64_5.dll
.
cudnn64_7.dll
на cudnn64_6.dll
допомагає.
Будь-яка помилка означає, що ваша система не встановлена MSVCP140.DLL
, що вимагає TensorFlow.
Щоб виправити цю помилку:
MSVCP140.DLL
є вона у вашій %PATH%
змінній.MSVCP140.DLL
його немає у вас %PATH%
, інсталюйте
Visual C ++ 2015 для розповсюдження (версія x64), який містить цю DLL.Тільки для тензорного потоку з центральним процесором:
Я встановив tensorflow за допомогою команди:
pip3 install --upgrade tensorflow
Це встановлено, tensorflow 1.7
але не вдалося імпортувати тензорпотік із python 3.6.5 amd64
використання за допомогою:
import tensorflow as tf
Таким чином, я знизив tensorflow версії від 1.7
до 1.5
використання наступної команди:
pip3 install tensorflow==1.5
Це видалило попередню версію та встановило 1.5
. Зараз це працює.
Здається, мій центральний процесор не підтримує набір інструкцій AVX , який потрібен у Windowstensorflow 1.7
Я мав MSVCP140.DLL
у системних папках та .DLL у змінній PATHEXT у змінній середовища.
У мене Win7 Pro 64-розрядна на процесорі AMD, немає процесора. Я дотримувався вказівок у розділі "Встановлення за допомогою власного pip" за адресою https://www.tensorflow.org/install/install_windows . Крок встановлення пройшов нормально, але спроба імпорту 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 .
Крім того, я рекомендую вам перевизначити каталог встановлення за замовчуванням для Python і помістити його куди завгодно C:\Program Files
, бо Windows намагається там захистити файли, що пізніше викликає проблеми.
TensorFlow
вимагає MSVCP140.DLL
, що може бути не встановлено у вашій системі. Щоб її вирішити, відкрийте термінал en, введіть або вставте це посилання:
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
Зверніть увагу, що це для встановлення версії TensorFlow лише для процесора.
Для тих, хто працює на старішому обладнанні:
Ви можете отримати цю саму помилку через наявність старішого процесора за допомогою tensorflow-gpu 1.6.
Якщо ваш процесор був виготовлений до 2011 року, то ваша максимальна версія tensorflow-gpu становить 1,5.
Tensorflow 1.6 вимагає інструкцій AVX щодо вашого процесора. Перевірено тут: Документи Tensorflow Github
Процесори з підтримкою AVX: процесори Wiki AVX
Що я зробив у своєму середовищі 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 працює лише з Python 3.5.2
(станом на даний момент)
Отже, якщо ви використовуєте Anaconda
conda create -n tensorflow-gpu python=3.5.2
activate tensorflow-gpu
pip install tensorflow-gpu
Потім відкрийте інтерпретатор python і перевірте
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Знайдено пристрій 0 із властивостями:
ім'я: GeForce 940M
основний: 5 мінор: 0
пам'ятіClockRate (ГГц) 1,176
pciBusID 0000: 06: 00,0
Загальна пам'ять: 2,00ГіБ
Вільна пам'ять: 1,66ГБ
Подяки: цей акуратний путівник
Для кожної версії Tensorflow потрібна інша версія CuDnn. На www.tensorflow.org вони не згадували про це в керівництві з установки!
У моєму випадку використовується tensorflow версії 1.3, який використовує cuDNN 6. https://github.com/tensorflow/tensorflow/releases .
Будь ласка, перевірте свою версію tensorfow та версію cuDNN, якщо вони збігаються.
І, будь ласка, встановіть середовище шляху для cuDNN, якщо воно все ще не працює, перевірте відповідь від @ Chris Han .
Я опублікував загальний підхід до вирішення проблеми "Не вдалося завантажити DLL" у цій публікації в системах Windows. Для довідки:
Використовуйте залежність аналізатора залежностей DLL, щоб проаналізувати
<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
та визначити точно відсутні DLL (позначені?
поруч із DLL). Шлях до файлу .pyd базується на версії графічного процесора TensorFlow 1.9, яку я встановив. Я не впевнений, що ім'я та шлях однакові в інших версіях TensorFlow.Шукайте інформацію про відсутні бібліотеки DLL та встановіть відповідний пакет, щоб вирішити проблему.
All files (*.*)
поруч із іменем файлу замість просто exe files (*.exe, *.dll)
.
У когось може виникнути спокуса тримати Powershell / cmd відкритим у Windows. Я витратив розумний час, поки не вирішив закрити та відкрити свою Powershell лише для того, щоб зрозуміти, що я зробив все правильно.
DLL не знайдено. Встановіть Visual C ++ 2015 для розповсюдження, щоб виправити.
Проблемою була бібліотека cuDNN для мене. Я зміг запустити тестовий код після додавання каталогу (можливо, папки bin) cuDNN DLL (не файлу LIB) до PATH Windows.
Для довідки я встановив TensorFlow з джерела за допомогою PIP та моєї ОС: Windows 7 та IDE: Visual Studio 2015.
У версії 1.3.0 TensorFlow вам потрібно використовувати Cudnn 6.0 замість Cudnn 5.0, оскільки Cudnn 5.0 видає цю помилку. Не забудьте додати змінну шляху до Cudnn 6.0. З cudnn64_6.dll ваш Tensorflow буде працювати нормально. Прочитайте посилання нижче. https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130
Мої два центи:
У мене була маса проблем, намагаючись правильно встановити мою CUDA 8.0 у Windows 7. У мене була встановлена попередня версія, і я хотів її оновити, тому видалив її та спробував встановити CUDA 8.0 (для tensorflow 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
Сподіваюся, що це допомагає і рятує деякі головні болі ...
ПРИМІТКА. Цей сценарій дуже допоміг мені вирішити проблему! (Дякую, мрі) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Я спробую дати рішення, яке працювало для мене. Здається, до цієї ситуації можуть призвести різні набори проблем.
32-розрядна програма працює в 64-розрядної ОС. Я встановив anaconda-3 (32 біт) у свою 64-бітну ОС. Це працювало чудово. Я вирішив встановити tensorflow у свою машину, і спочатку він не встановлювався. Я використовував середовище conda для встановлення tensorflow і отримав цю помилку.
Рішення полягає в тому, що якщо у вас 64-розрядна ОС, встановіть 64-розрядну анаконду, а якщо 32-розрядну ОС, то 32-розрядну анаконду . Потім дотримуйтесь стандартної процедури, згаданої на веб-сайті tensorflow для вікон (установка anaconda). Це дозволило без проблем встановити tensorflow.
моя відповідь стосується лише користувачів Windows 10, оскільки я спробував наступне на Windows 10. Розширюючи деякі з наведених вище відповідей, я пропоную це: Якщо ви використовуєте anaconda, ви можете уникнути всього і просто встановити anaconda-navigator за допомогою команди
conda install -c anaconda anaconda-navigator
Потім ви можете запустити навігатор із командного рядка за допомогою команди
anaconda-navigator
Запустивши цю команду, ви отримаєте простий графічний інтерфейс, де ви можете створити віртуальне середовище, створити середовище з python = 3.5.2 та встановити модуль tensorflow-gpu або tensorflow шляхом пошуку модуля у вікні пошуку за допомогою gui, це також подбає встановлення правильних файлів Cuda для вас. Використання навігатора anaconda - найпростіше рішення.
Якщо ви не використовуєте анаконду, подбайте про наступне
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
До речі, у мене не було версії графічного процесора, тому в моєму випадку проблем із CUDA не було.
Натрапив на ту саму проблему ( у 2019/09/09 ) під час розслідування [SO]: Помилка під час навчання за допомогою API оцінювача в tensorflow .
Налаштування:
Помилка :
[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!!!