CNTK (набор когнитивных инструментов Microsoft) ImportError

Код:

import cntk
n = cntk.minus([1, 2, 3], [4, 5, 6]).eval()
print(n)

Проблема:

Если запустить код построчно в командной строке python, все в порядке.

Если запустить Python main.py, тоже все в порядке.

Но если запустить код в PyCharm или Visual Studio Code, возникает ошибка, дамп ошибки PyCharm:

Traceback (most recent call last):
File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\cntk_py.py", line 18, in swig_import_helper
  return importlib.import_module(mname)
File "D:\Apps\Anaconda3\envs\Python3.53\lib\importlib\__init__.py", line 126, in import_module
  return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'cntk._cntk_py'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:/Dev/machine_learning/Test_CNTK/main.py", line 1, in <module>
    import cntk
  File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\__init__.py", line 11, in <module>
    from .core import *
  File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\core.py", line 10, in <module>
    from . import cntk_py
  File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\cntk_py.py", line 21, in <module>
    _cntk_py = swig_import_helper()
  File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\cntk_py.py", line 20, in swig_import_helper
    return importlib.import_module('_cntk_py')
  File "D:\Apps\Anaconda3\envs\Python3.53\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified module could not be found.

Окружающая среда:

  • Анаконда: 4.3.1
  • Python: 3.5.3 (виртуальная среда в анаконде)
  • CNTK: 2.0beta12 для графического процессора windows amd64
  • Пичарм: 2016.3.2
  • Код Visual Studio: 1.10.2

person followait    schedule 13.03.2017    source источник


Ответы (1)


Решено

Поскольку он не может найти файлы DLL с CNTK (например, CNTKLibrary-2.0.dll, EvalDll.dll), эти DLL находятся в том же каталоге «python.exe» после установки CNTK.

Есть 2 решения:

(предположим, что PYTHONDIR — это каталог, в котором находится python.exe)

  1. измените системную среду PATH, чтобы включить PYTHONDIR

  2. добавьте следующий код перед «import cntk»:

    импорт ОС; os.environ['ПУТЬ'] = PYTHONDIR + ';' + os.environ['ПУТЬ']

person followait    schedule 13.03.2017