Подтвердить что ты не робот

В Windows запуск "import tensorflow" не генерирует модуль с именем "_pywrap_tensorflow"

В Windows TensorFlow сообщает об одной или обеих следующих ошибках после выполнения инструкции import tensorflow:

  • No module named "_pywrap_tensorflow"
  • DLL load failed.
4b9b3361

Ответ 1

Проблема была для библиотеки cuDNN для меня - по какой-то причине cudnn-8.0-windows10-x64-v6.0 не работал - я использовал cudnn-8.0-windows10-x64-v5.1 - ВСЕ ХОРОШИЕ!

Моя настройка работает с Win10 64 и Nvidia GTX780M:

  • Убедитесь, что у вас есть lib MSVCP140.DLL, проверив вашу систему/путь - если не получите здесь
  • Запустите установщик Windows для python 3.5.3-amd64 из здесь - НЕ пробуйте новые версии, поскольку они, вероятно, не будут работать
  • Получить cuDNN v5.1 для CUDA 8.0 из здесь - поместить его под свою папку пользователя или в другое известное место (вам понадобится это на вашем пути)
  • Получить CUDA 8.0 x86_64 из здесь
  • Установите PATH vars, как и ожидалось, чтобы указать на cuDNN libs и python (путь python должен быть добавлен во время установки python)
  • Убедитесь, что в переменную PATHEXT включен параметр ".DLL"
  • Если вы используете tensorflow 1.3, вы хотите использовать cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705

Если вы запустите Windows 32, обязательно получите 32-битные версии файлов, упомянутых выше.

Ответ 2

В моем случае файл "cudnn64_6.dll" в папке /bin должен был быть переименован в "cudnn64_5.dll", чтобы ошибка исчезла. Я легко провел два часа, чтобы понять это, и я последовал официальному руководству по установке к письму. Это верно для установки через pip (официально поддерживается) и conda (поддерживается сообществом).

Ответ 3

Любая ошибка указывает, что ваша система не установила MSVCP140.DLL, которые требуется TensorFlow.

Чтобы исправить эту ошибку:

  • Определите, находится ли MSVCP140.DLL в вашей переменной %PATH%.
  • Если MSVCP140.DLL не находится в вашем %PATH%, установите  Visual С++ 2015 распространяемый (версия x64), который содержит эту DLL.

Ответ 4

У меня 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 пытается защитить файлы от записи, что вызывает проблемы позже.

Ответ 5

Только для тензорного потока с процессором:


Я установил тензор потока с помощью команды:

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 в переменной среды.

Ответ 6

cuDNN вызывает мою проблему. Переменная PATH не работает для меня. Мне нужно скопировать файлы в папках cuDNN в уважаемую структуру папок CUDA 8.0.

Ответ 7

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.

Ответ 8

Для тех, кто работает на старом оборудовании:

Вы можете получить эту же ошибку из-за того, что на старом процессоре использовался тензор-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

Ответ 9

После долгих проб и ошибок и обеспечения доступности 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

Кредиты: это аккуратное руководство

Ответ 10

Проблема для меня была библиотека cuDNN, которая не соответствовала требованиям видеокарты. Я загрузил версию 6.0, но для моего GTX980ti, но рекомендуемая вычислительная способность на веб-сайте nvidia была 5.1 (http://developer.nvidia.com/cuda-gpus), поэтому я загрузил 5.1 и заменил версию 6.0 и как только я это сделал, он начал работать.

Ответ 11

Для каждой версии Tensorflow требуется другая версия CuDnn. На сайте www.tensorflow.org они не упомянули об этом в руководстве по установке!

В моем случае используется версия tensorflow версии 1.3, которая использует cuDNN 6. https://github.com/tensorflow/tensorflow/releases.

Пожалуйста, проверьте вашу версию tenorfow и версию cuDNN, если они совпадают.

И, пожалуйста, укажите путь для cuDNN, если он все еще не работает, пожалуйста, отметьте комментарий от @Chris Han.

Ответ 12

Возможно, у вас возникнет соблазн оставить Powershell/cmd открытым в Windows. Я потратил разумное время, пока не решил закрыть и снова открыть свою Powershell, чтобы понять, что я сделал все правильно.

Ответ 13

Если вы пытаетесь установить графический процессор tenorflow в Windows, вы можете найти этот простой интересный учебник.

Примечание. Если вы используете PyCharm, например, вы должны изменить интерпретатор на созданную среду conda.

Ответ 14

Я опубликовал общий подход к устранению проблемы "Ошибка загрузки DLL" в этом посте в системах Windows.

  1. Используйте Зависимости анализатора зависимостей DLL, чтобы проанализировать <Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd и определить точную отсутствующую DLL (обозначенную ? Рядом с DLL). Путь к файлу .pyd зависит от установленной мной версии графического процессора TensorFlow 1.9. Я не уверен, совпадают ли имя и путь в других версиях TensorFlow.

  2. Найдите информацию об отсутствующей DLL и установите соответствующий пакет для решения проблемы.

Ответ 15

Dll не найден. Установите Visual С++ 2015 для распространения.

Ответ 16

Проблема была для библиотеки cuDNN. Я смог запустить тестовый код после добавления каталога (возможно, папки bin) библиотеки cuDNN (не LIB файла) в Windows PATH,

Для справки я установил TensorFlow из источника с помощью PIP и моей ОС: Windows 7 и IDE: Visual Studio 2015.

Ответ 17

С выпуском 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

Ответ 18

Мои два цента:

У меня было много проблем с попыткой установить мой 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

Ответ 19

Я постараюсь дать решение, которое сработало для меня. Похоже, что в этой ситуации может возникнуть другой набор проблем.

32-разрядное программное обеспечение работает в 64-разрядной ОС. Я установил anaconda-3 (32 бит) в свою 64-битную ОС. Он работал отлично. Я решил установить tensorflow на моем компьютере, и он не будет устанавливаться поначалу. Я использовал среду conda для установки shadoworflow и получил эту ошибку.

Решение , если вы используете 64-разрядную ОС, установите 64-разрядную anaconda и 32-разрядную ОС, а затем 32-разрядную anaconda. Затем выполните стандартную процедуру, указанную на веб-сайте tensorflow для окон (установка anaconda). Это позволило без проблем установить инсталлятор.

Ответ 20

мой ответ предназначен только для пользователей 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

Вышеуказанная ссылка очень полезна. Прокомментируйте улучшения для этого ответа. Надеюсь, это поможет, спасибо.

Ответ 21

tensorflow 1.3 не поддерживает cuda 9.0. Я деградирую до cuda 8.0, тогда он работает.

Ответ 22

Для людей, нашедших этот пост в 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.

Ответ 23

Возникла та же проблема (в 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 файлы).

Img0

Проверьте [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

Шаги:

  • Удалите любую версию CUDA Toolkit (необязательно)
  • Установите [nVidia.Developer]: CUDA Toolkit 10.0 Archive
    • Обязательно установите v10.0 (чтобы эта версия TensorFlow- GPU была построена для). Я установил v10.1 (который был самым последним, а также рекомендуемой версией во время ответа), и имена .dll не совпадали (cu * _10 1.dll). Поскольку я не хотел устанавливать v10.0, я создал несколько символических ссылок (с "правильными" именами) на существующие файлы, и это сработало. Но имейте ввиду, что это не поддерживается !!! Вы можете столкнуться с забавным поведением (включая сбои). Это (отстой) обходной путь (Gainarie)
    • Кроме того, требуется совместимая (то есть для конкретной версии CUDA Toolkit) версия cuDNN ([nVidia.Developer]: cuDNN Archive). Для доступа к URL-адресу загрузки необходимо членство в nVidia

После описанных выше шагов, а также установки правильных путей это сработало:

[[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!!!