Keras получает ошибку при использовании TensorFlow-gpu

Я пытаюсь запустить Keras с TensorFlow в качестве бэкэнда, но хочу запустить его на своем графическом процессоре. Я установил TensorFlow-gpu, CUDA 8.0 и cuDNN, но Keras получает следующую ошибку:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py in swig_import_helper()
     17         try:
---> 18             return importlib.import_module(mname)
     19         except ImportError:

c:\python\python36-32\lib\importlib\__init__.py in import_module(name, package)
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127 

c:\python\python36-32\lib\importlib\_bootstrap.py in _gcd_import(name, package, level)

c:\python\python36-32\lib\importlib\_bootstrap.py in _find_and_load(name, import_)

c:\python\python36-32\lib\importlib\_bootstrap.py in _find_and_load_unlocked(name, import_)

c:\python\python36-32\lib\importlib\_bootstrap.py in _load_unlocked(spec)

c:\python\python36-32\lib\importlib\_bootstrap.py in module_from_spec(spec)

c:\python\python36-32\lib\importlib\_bootstrap_external.py in create_module(self, spec)

c:\python\python36-32\lib\importlib\_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)

ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

ModuleNotFoundError                       Traceback (most recent call last)
c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow.py in <module>()
     40     sys.setdlopenflags(_default_dlopen_flags | ctypes.RTLD_GLOBAL)
---> 41   from tensorflow.python.pywrap_tensorflow_internal import *
     42   from tensorflow.python.pywrap_tensorflow_internal import __version__

c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py in <module>()
     20             return importlib.import_module('_pywrap_tensorflow_internal')
---> 21     _pywrap_tensorflow_internal = swig_import_helper()
     22     del swig_import_helper

c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py in swig_import_helper()
     19         except ImportError:
---> 20             return importlib.import_module('_pywrap_tensorflow_internal')
     21     _pywrap_tensorflow_internal = swig_import_helper()

c:\python\python36-32\lib\importlib\__init__.py in import_module(name, package)
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127 

ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-2-88d96843a926> in <module>()
----> 1 import keras

c:\python\python36-32\lib\site-packages\keras\__init__.py in <module>()
      1 from __future__ import absolute_import
      2 
----> 3 from . import utils
      4 from . import activations
      5 from . import applications

c:\python\python36-32\lib\site-packages\keras\utils\__init__.py in <module>()
      4 from . import data_utils
      5 from . import io_utils
----> 6 from . import conv_utils
      7 
      8 # Globally-importable utils.

c:\python\python36-32\lib\site-packages\keras\utils\conv_utils.py in <module>()
      1 from six.moves import range
      2 import numpy as np
----> 3 from .. import backend as K
      4 
      5 

c:\python\python36-32\lib\site-packages\keras\backend\__init__.py in <module>()
     81 elif _BACKEND == 'tensorflow':
     82     sys.stderr.write('Using TensorFlow backend.\n')
---> 83     from .tensorflow_backend import *
     84 else:
     85     raise ValueError('Unknown backend: ' + str(_BACKEND))

c:\python\python36-32\lib\site-packages\keras\backend\tensorflow_backend.py in <module>()
----> 1 import tensorflow as tf
      2 from tensorflow.python.training import moving_averages
      3 from tensorflow.python.ops import tensor_array_ops
      4 from tensorflow.python.ops import control_flow_ops
      5 from tensorflow.python.ops import functional_ops

c:\python\python36-32\lib\site-packages\tensorflow\__init__.py in <module>()
     22 
     23 # pylint: disable=wildcard-import
---> 24 from tensorflow.python import *
     25 # pylint: enable=wildcard-import
     26 

c:\python\python36-32\lib\site-packages\tensorflow\python\__init__.py in <module>()
     47 import numpy as np
     48 
---> 49 from tensorflow.python import pywrap_tensorflow
     50 
     51 # Protocol buffers

c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow.py in <module>()
     50 for some common reasons and solutions.  Include the entire stack trace
     51 above this error message when asking for help.""" % traceback.format_exc()
---> 52   raise ImportError(msg)
     53 
     54 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long

ImportError: Traceback (most recent call last):
  File "c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper
    return importlib.import_module(mname)
  File "c:\python\python36-32\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 571, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
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 "c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 41, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 21, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "c:\python\python36-32\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 20, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow_internal')
  File "c:\python\python36-32\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.

У меня установлена ​​только версия tenorflow для графических процессоров, и я дважды проверил, что мой драйвер для графических процессоров обновлен. Я искал несколько часов, но не смог найти решения подобной проблемы.


person luigiisgreeny    schedule 22.10.2017    source источник
comment
какая версия cuDNN и tensorflow у вас установлена?   -  person Julio Daniel Reyes    schedule 22.10.2017
comment
@JulioDanielReyes У меня установлен cuDNN v7.0.3   -  person luigiisgreeny    schedule 22.10.2017
comment
Кажется, что tensorflow поддерживает cuDNN 6.0 --- вопрос: вы используете jupyter? Если да, то создали ли вы среду и установили этот тензорный поток в этой среде?   -  person Daniel Möller    schedule 22.10.2017
comment
Да, я использую ноутбук jupyter, и tensorflow работает с версией процессора. РЕДАКТИРОВАТЬ: я установил cuDNN 6.0, и теперь он работает!   -  person luigiisgreeny    schedule 22.10.2017
comment
@JulioDanielReyes, я думаю, это ваш ответ, если вы хотите его опубликовать :)   -  person Daniel Möller    schedule 22.10.2017
comment
Как только я обнаружил ужасную проблему с jupyter: что бы я ни делал, он всегда указывал на исходную версию python, а не на версию python среды. Мне пришлось уничтожить свою виртуальную машину и создать еще одну с нуля, позаботившись об установке jupyter только с anaconda и только уже в правильной среде.   -  person Daniel Möller    schedule 22.10.2017
comment
Спасибо @ DanielMöller, похоже, это обычная проблема, для меня No module named '_pywrap_tensorflow_internal' означает, что установлены неправильные библиотеки gpu   -  person Julio Daniel Reyes    schedule 22.10.2017
comment
Возможный дубликат tensorflow-gpu в Windows: модуль не назван "_pywrap_tensorflow_internal"   -  person Julio Daniel Reyes    schedule 22.10.2017


Ответы (1)


Чтобы ответить на этот вопрос, тензорный поток в версии 1.3 не поддерживает cuDNN 7, но они будут в 1.4.

Если у вас снова возникнет эта проблема, обязательно проверьте официальную документацию о том, какая именно версия Cuda и CuDNN для использования с вашей версией tensorflow.

person Julio Daniel Reyes    schedule 22.10.2017