#python #windows #tensorflow
#python #Windows #тензорный поток #tensorflow
Вопрос:
«tensorflow-cpu» отлично работает на моем устройстве с Windows 10. Я пытался установить tensorflow-gpu, и после установки ему не удается импортировать, показывая следующую ошибку.
tensorflow.python.pywrap_tensorflow_internal нет модуля
Я установил следующее
CUDA 10.1
Графический драйвер Nvidia версии 419
cuDNN для CUDA 10.1
ПОВТОРНЫЙ СПИСОК VC 2015
Кто-нибудь может сказать, чего мне не хватает, это полное сообщение об ошибке.
Traceback (most recent call last):
File "D:Program FilesPythonlibsite-packagestensorflowpythonpywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "D:Program FilesPythonlibsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "D:Program FilesPythonlibsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "D:Program FilesPythonlibimp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "D:Program FilesPythonlibimp.py", line 343, 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 "<stdin>", line 1, in <module>
File "D:Program FilesPythonlibsite-packagestensorflow__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "D:Program FilesPythonlibsite-packagestensorflowpython__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "D:Program FilesPythonlibsite-packagestensorflowpythonpywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "D:Program FilesPythonlibsite-packagestensorflowpythonpywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "D:Program FilesPythonlibsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "D:Program FilesPythonlibsite-packagestensorflowpythonpywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "D:Program FilesPythonlibimp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "D:Program FilesPythonlibimp.py", line 343, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
Ответ №1:
Если вы уверены, что на вашем компьютере с Windows установлен Visual C 2015 Redist, то, вероятно, это конфликт версий между версией CUDA и версией Tensorflow. Поскольку в более новых версиях есть некоторые конфликты и многое другое, для правильной работы tensorflow требуется точная версия CUDA и библиотеки cuDNN.
Лучший способ правильно настроить его — использовать Anaconda для установки и настройки tensorflow-gpu, поскольку conda автоматически загрузит все необходимые версии CUDA и cuDNN для соответствующего tensorflow
Проблема в том, что новая Anaconda по умолчанию использует Python 3.7.x, который не поддерживается tensorflow или tensorflow-gpu
Итак, установите Anaconda, Вы можете скачать ее здесь
Теперь создайте виртуальную среду, используя conda с настройкой python 3.6.x, введя следующее в приглашении Anaconda
conda create -n yourenvname python=3.6 anaconda
Теперь переключитесь на свою среду, введя
conda activate yourenvname
Теперь проверьте версию python, используя, которая должна показать вам что-то вроде этого
> python --version
Python 3.6.7 :: Anaconda custom (64-bit)
Теперь, наконец, установите tensorflow-gpu
conda install tensorflow-gpu
Теперь откройте python и попробуйте импортировать tensorflow
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
Поздравляю! Все готово.