Python – CNTK (Microsoft Cognitive Toolkit) import error

CNTK (Microsoft Cognitive Toolkit) import error… here is a solution to the problem.

CNTK (Microsoft Cognitive Toolkit) import error

Code:

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

Question:

If run the code line by line in python command line, it’s ok.

If run “Python main.py”, it’s also ok.

But if run the code in PyCharm or Visual Studio Code, error occurs, PyCharm error dump:

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.

Environment:

  • python :4.3.1
  • Python: 3.5.3 (virtual environment in anaconda).
  • CNTK: 2.0beta12 for Windows amd64 GPUs
  • PyCharm:2016.3.2
  • Visual Studio code: 1.10.2

Solution

Resolved

Since DLL files with CNTK (e.g. CNTKLibrary-2.0.dll, EvalDll.dll could not be found, these DLLs are in the same directory as “python.exe” after CNTK is installed.

There are two workarounds:

(ASSUMING PYTHONDIR IS THE DIRECTORY WHERE THE PYTHON .exe IS LOCATED).

  1. CHANGE THE SYSTEM ENVIRONMENT PATH TO INCLUDE PYTHONDIR

  2. Add the following code before “import cntk”:

    Import the operating system; os.environ[‘PATH’] = PYTHONDIR + ‘; ‘ + os.environ[‘PATH’]

Related Problems and Solutions