Прежде всего, сама оригинальная проблема возникла из-за попытки установки графического процессора Tensorflow.
Для начала я сначала установил все зависимые пакеты (драйвер графического процессора Nvidia, CUDA, cudnn и т.д.), Новый пакет Anaconda и tenorflow-gpu. До сих пор все было хорошо.
Затем я запустил Spyden IDE и попытался запустить 'import tenorflow' в ipython. Затем я получил эту ошибку:
Traceback (most recent call last):
File "<ipython-input-1-d6579f534729>", line 1, in <module>
import tensorflow
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\zhengxin\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\zhengxin\Anaconda3\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 "C:\Users\zhengxin\Anaconda3\lib\imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\zhengxin\Anaconda3\lib\imp.py", line 343, 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.
Затем я провел много исследований и выяснил, что наиболее вероятной причиной этой ошибки является то, что следующие два пути НЕ относятся к переменной среды PATH, отображаемой в Spyder (ipython).
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
Самое странное, эти два пути существуют в моей переменной среды PATH.
Итак, наконец, мой вопрос: почему Spyder/ipython/anaconda не собирает переменные среды PATH Windows?
Хорошо, я сам решил эту проблему.
Тот факт, что переменные среды PATH отсутствуют, является реальной вещью, но на самом деле это всего лишь симптом неправильной настройки зависимостей tensorflow-gpu.
В конечном счете, проблема связана с установкой CUDA 10.0 и сопровождающей ее cuDNN. Версия 10.0 была последней версией на веб-сайте NVIDIA, и это была такая естественная ошибка для людей! Во всяком случае, я затем прочитал заметку о выпуске как CUDA, так и TensorFlow, и решил, что я должен был установить CUDA 9.0 вместо этого. И это сработало!
Самое удивительное и странное, как только я установил CUDA 9.0, все переменные окружения внезапно стали правильными! т.е. переменные среды пути для всех этих четырех каталогов внезапно все, как по волшебству, появляются в моих переменных PATH ipython/anaconda/spyder!
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp