В 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 (поддерживается сообществом).
Любая ошибка указывает, что ваша система не установила MSVCP140.DLL
,
которые требуется TensorFlow.
Чтобы исправить эту ошибку:
MSVCP140.DLL
в вашей переменной %PATH%
.MSVCP140.DLL
не находится в вашем %PATH%
, установите
Visual С++ 2015 распространяемый (версия x64), который содержит эту DLL.У меня Win7 Pro 64-бит на AMD CPU, нет gpu. Я выполнял инструкции в разделе "Установка с помощью native pip" в https://www.tensorflow.org/install/install_windows. Шаг установки прошел нормально, но попытка импортировать shadoworflow вызвала печально известный:
ImportError: нет модуля с именем '_pywrap_tensorflow_internal'
Это, по-видимому, одна из тех ситуаций, когда много несвязанных вещей может пойти не так, в зависимости от конфигурации, которые все каскадируются до одной и той же ошибки.
В моем случае установка MSVCP140.DLL была ответом.
У вас есть MSVCP140.DLL уже, если (a) у вас есть файл C:\Windows\System43\MSVCP140.DLL, и (b) если у вас есть 64-битная система, то вы дополнительно имеете C:\Windows\SysWOW64\MSVCP140.DLL.
Я установил его вручную, что было необязательно (распространяемый - это не весь сценарий разработки Visual С++ и невелик). Используйте ссылку, опубликованную ранее в этом потоке, чтобы установить ее: Visual С++ 2015 распространяемый.
Кроме того, я рекомендую вам переопределить каталог установки по умолчанию для Python и поместить его куда угодно, кроме C:\Program Files, потому что Windows пытается защитить файлы от записи, что вызывает проблемы позже.
Только для тензорного потока с процессором:
Я установил тензор потока с помощью команды:
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 в переменной среды.
cuDNN вызывает мою проблему. Переменная PATH не работает для меня. Мне нужно скопировать файлы в папках cuDNN в уважаемую структуру папок CUDA 8.0.
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 только для CPU.
Для тех, кто работает на старом оборудовании:
Вы можете получить эту же ошибку из-за того, что на старом процессоре использовался тензор-gpu 1.6.
Если ваш процессор был сделан до 2011 года, то максимальная версия tenorflow-gpu - 1.5.
Tensorflow 1.6 требует инструкций AVX на вашем процессоре. Проверено здесь: Документация по Tensorflow Github
Процессоры с поддержкой AVX: Процессоры Wiki AVX
Что я сделал в моей среде conda для tenorflow:
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
После долгих проб и ошибок и обеспечения доступности VС++ 2015, библиотеки cuDNN и всех других зависимостей из 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 minor: 0
memoryClockRate (ГГц) 1.176
pciBusID 0000: 06: 00.0
Общая память: 2,00GiB
Свободная память: 1.66GiB
Кредиты: это аккуратное руководство
Проблема для меня была библиотека cuDNN, которая не соответствовала требованиям видеокарты. Я загрузил версию 6.0, но для моего GTX980ti, но рекомендуемая вычислительная способность на веб-сайте nvidia была 5.1 (http://developer.nvidia.com/cuda-gpus), поэтому я загрузил 5.1 и заменил версию 6.0 и как только я это сделал, он начал работать.
Для каждой версии Tensorflow требуется другая версия CuDnn. На сайте www.tensorflow.org они не упомянули об этом в руководстве по установке!
В моем случае используется версия tensorflow версии 1.3, которая использует cuDNN 6. https://github.com/tensorflow/tensorflow/releases.
Пожалуйста, проверьте вашу версию tenorfow и версию cuDNN, если они совпадают.
И, пожалуйста, укажите путь для cuDNN, если он все еще не работает, пожалуйста, отметьте комментарий от @Chris Han.
Возможно, у вас возникнет соблазн оставить Powershell/cmd открытым в Windows. Я потратил разумное время, пока не решил закрыть и снова открыть свою Powershell, чтобы понять, что я сделал все правильно.
Если вы пытаетесь установить графический процессор tenorflow в Windows, вы можете найти этот простой интересный учебник.
Примечание. Если вы используете PyCharm, например, вы должны изменить интерпретатор на созданную среду conda.
Я опубликовал общий подход к устранению проблемы "Ошибка загрузки DLL" в этом посте в системах Windows.
Используйте Зависимости анализатора зависимостей DLL, чтобы проанализировать <Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
и определить точную отсутствующую DLL (обозначенную ?
Рядом с DLL). Путь к файлу .pyd зависит от установленной мной версии графического процессора TensorFlow 1.9. Я не уверен, совпадают ли имя и путь в других версиях TensorFlow.
Найдите информацию об отсутствующей DLL и установите соответствующий пакет для решения проблемы.
Dll не найден. Установите Visual С++ 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 и смог установить ее, но имел массу проблем с тензорным потоком (аналогично описанной здесь проблеме 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, но любой мог бы сделать), чтобы убедиться, что они в порядке (это произошло несколько раз, что установщик не был загружен должным образом, потому что мой WiFi-маршрутизатор, по-видимому).
4) Запустите инсталлятор инструментария CUDA с правами root
5) загрузите cudnn 8.0 v6 и добавьте его местоположение в переменную PATH https://developer.nvidia.com/rdp/cudnn-download
Надеюсь, что помогает и спасает некоторые головные боли...
ПРИМЕЧАНИЕ. Этот script помог мне отладить проблему! (Спасибо, мистер) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
Я постараюсь дать решение, которое сработало для меня. Похоже, что в этой ситуации может возникнуть другой набор проблем.
32-разрядное программное обеспечение работает в 64-разрядной ОС. Я установил anaconda-3 (32 бит) в свою 64-битную ОС. Он работал отлично. Я решил установить tensorflow на моем компьютере, и он не будет устанавливаться поначалу. Я использовал среду conda для установки shadoworflow и получил эту ошибку.
Решение , если вы используете 64-разрядную ОС, установите 64-разрядную anaconda и 32-разрядную ОС, а затем 32-разрядную anaconda. Затем выполните стандартную процедуру, указанную на веб-сайте tensorflow для окон (установка anaconda). Это позволило без проблем установить инсталлятор.
мой ответ предназначен только для пользователей Windows 10, поскольку я пробовал следующее в Windows 10. Расширяя некоторые из приведенных выше ответов, я предлагаю следующее: Если вы используете anaconda, вы можете обойти все и просто установить anaconda-navigator с помощью команды
conda install -c anaconda anaconda-navigator
Затем вы можете запустить навигатор из командной строки с помощью команды
anaconda-navigator
При запуске этой команды вы получите простой gui, где вы можете создать виртуальную среду, создать среду с python = 3.5.2 и установить модуль tensorflow-gpu или tensorflow, выполнив поиск модуля в окне поиска с помощью gui, он будет также позаботьтесь об установке правильных файлов cuda для вас. Использование anaconda navigator - самое простое решение.
Если вы не используете anaconda, позаботьтесь о следующих
tensorflow-gpu 1.3 требует python 3.5.2, cuda development kit 8.0 и cudaDNN 6.0, поэтому при установке убедитесь, что вы запустите команду
pip install tensorflow-gpu==1.3
tensorflow-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
Вышеуказанная ссылка очень полезна. Прокомментируйте улучшения для этого ответа. Надеюсь, это поможет, спасибо.
tensorflow 1.3 не поддерживает cuda 9.0. Я деградирую до cuda 8.0, тогда он работает.
Для людей, нашедших этот пост в 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 оценки в тензорном потоке.
Установка:
Ошибка:
[[email protected]:e:\Work\Dev\Qaru\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 throws OSError: [WinError193]% 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
) сделало ошибку немного более понятной (а также более короткой):
[[email protected]:e:\Work\Dev\Qaru\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
Шаги:
После описанных выше шагов, а также установки правильных путей это сработало:
[[email protected]:e:\Work\Dev\Qaru\q057588589]> set PATH=%PATH%;%CUDA_PATH%\bin;f:\Install\x64\NVidia\GPU Computing Toolkit\cuDNN\7.6\bin [[email protected]:e:\Work\Dev\Qaru\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow;print(\"Success!!!\")" Success!!!