В 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.Только для тензорного потока с ЦП:
Я установил тензорный поток с помощью команды:
pip3 install --upgrade tensorflow
Это установлено, tensorflow 1.7
но не удалось импортировать тензорный поток изнутри, python 3.6.5 amd64
используя:
import tensorflow as tf
Итак, я понизил версию tenorflow с 1.7
до, 1.5
используя следующую команду:
pip3 install tensorflow==1.5
Это удалило предыдущую версию и установило 1.5
. Теперь это работает.
Похоже, мой процессор не поддерживает набор инструкций AVX, который необходим вtensorflow 1.7
У меня были MSVCP140.DLL
в системных папках и .DLL в переменной PATHEXT в Environment Variable.
У меня 64-разрядная версия Win7 Pro на процессоре AMD, без графического процессора. Я следовал инструкциям из раздела «Установка с помощью собственного пакета» на https://www.tensorflow.org/install/install_windows . Шаг установки прошел нормально, но попытка импортировать тензорный поток привела к печально известному:
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 .
Кроме того, я рекомендую вам переопределить каталог установки по умолчанию для Python и поместить его где-нибудь C:\Program Files
, кроме как под ним , потому что Windows пытается защитить файлы от записи в нем, что впоследствии вызывает проблемы.
TensorFlow
требует MSVCP140.DLL
, который может не быть установлен в вашей системе. Чтобы решить эту проблему, откройте терминал en type или вставьте эту ссылку:
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
Обратите внимание, что это необходимо для установки версии TensorFlow только для ЦП.
Для тех, кто работает на старом оборудовании:
Вы можете получить ту же ошибку из-за того, что у вас более старый процессор, использующий tenorflow-gpu 1.6.
Если ваш процессор был создан до 2011 года, то ваша максимальная версия tensorflow-gpu - 1.5.
Tensorflow 1.6 требует инструкций AVX на вашем процессоре. Проверено здесь: Tensorflow Github docs
ЦП с поддержкой AVX: ЦП Wiki AVX
Что я сделал в своей среде conda для tenorflow:
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 со свойствами:
name: GeForce 940M
major: 5 minor: 0
memoryClockRate (GHz)
1.176 pciBusID 0000: 06: 00.0
Общий объем памяти: 2,00 ГБ
Свободная память: 1,66 ГБ
Кредиты: это аккуратное руководство
Для каждой версии Tensorflow требуется отдельная версия CuDnn. На сайте www.tensorflow.org об этом не упоминалось в руководстве по установке!
В моем случае используется тензорный поток версии 1.3, который использует cuDNN 6. https://github.com/tensorflow/tensorflow/releases .
Проверьте свою версию tensorfow и версию cuDNN, если они совпадают.
И, пожалуйста, укажите среду пути для cuDNN, если она по-прежнему не работает, проверьте ответ от @ Chris Han .
В этом посте я опубликовал общий подход к устранению проблемы "Ошибка загрузки DLL" в системах Windows. Для справки:
Используйте анализатор зависимостей DLL Dependencies для анализа
<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 (а не файла LIB) в Windows PATH.
Для справки я установил TensorFlow из источника с помощью PIP и моей ОС: Windows 7 и IDE: Visual Studio 2015.
В выпуске TensorFlow 1.3.0 вам нужно использовать 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 и смог установить его, но имел массу проблем с tenorflow (аналогично описанной здесь проблеме PATH). Короче говоря: у меня сработало следующее:
1) Удалите ВСЕ компоненты NVIDIA (кроме драйвера видеокарты)
2) Загрузите CUDA toolkit 8.0 (и патч) https://developer.nvidia.com/cuda-downloads
3) Проверьте CheckSum MD5 (я использовал MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533, но подойдет любой), чтобы убедиться, что они в порядке (несколько раз случалось, что установщик не был загружен должным образом из-за моего Wi-Fi роутера).
4) Запустите установщик набора инструментов CUDA от имени пользователя root.
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-битную ОС. Он работал отлично. Я решил установить tenorflow на свой компьютер, и сначала он не установился. Я использовал среду conda для установки tenorflow и получил эту ошибку.
Решение: если вы используете 64-битную ОС, установите 64-битную анаконду, а если 32-битную ОС, то 32-битную анаконду . Затем выполните стандартную процедуру, описанную на веб-сайте tensorflow для Windows (установка анаконды). Это позволило без проблем установить tensorflow.
мой ответ предназначен только для пользователей Windows 10, поскольку я пробовал следующее в Windows 10. Расширяя некоторые из приведенных выше ответов, я предлагаю следующее: если вы используете anaconda, вы можете избежать всего и просто установить anaconda-navigator с помощью команды
conda install -c anaconda anaconda-navigator
Затем вы можете запустить навигатор из командной строки с помощью команды
anaconda-navigator
При запуске этой команды вы получаете простой графический интерфейс, в котором вы можете создать виртуальную среду, создать среду с помощью python = 3.5.2 и установить модуль tensorflow-gpu или tensorflow, выполнив поиск модуля в поле поиска с помощью графического интерфейса, он также позаботится установки правильных файлов cuda для вас. Использование навигатора Anaconda - самое простое решение.
Если вы не используете анаконду, позаботьтесь о следующих
tenorflow-gpu 1.3 требует python 3.5.2, cuda development kit 8.0 и cudaDNN 6.0, поэтому при установке убедитесь, что вы выполнили команду
pip install tensorflow-gpu==1.3
tenorflow-gpu 1.2.1 или меньше требует python 3.5.2, cuda development kit 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. Для Анаконды:
conda install python=3.6
Затем установите TensorFlow.
pip install tensorflow
Кстати, у меня не было версии GPU, поэтому в моем случае не было проблем, связанных с CUDA.
Возникла та же проблема ( в 2019/09/09 ) при исследовании [SO]: Ошибка при обучении с использованием 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!!!