为什么将cntk作为C导入在Google Colab中不起作用

时间:2018-12-05 14:28:05

标签: python-3.x jupyter-notebook lstm google-colaboratory cntk

我安装了opencv版本3.4.4,安装了cntk,导入google collab会得到以下结果。

import cntk as C 

    /usr/local/lib/python3.6/dist-packages/cntk/cntk_py_init.py:56: UserWarning: Unsupported Linux distribution (ubuntu-18.04). CNTK supports Ubuntu 16.04 and above, only.
  warnings.warn('Unsupported Linux distribution (%s-%s). CNTK supports Ubuntu 16.04 and above, only.' % (__my_distro__, __my_distro_ver__))
/usr/local/lib/python3.6/dist-packages/cntk/cntk_py_init.py:102: UserWarning: 

################################################ Missing optional dependency (   OpenCV   ) ################################################
   CNTK may crash if the component that depends on those dependencies is loaded.
   Visit https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-Linux-Python#optional-opencv for more information.
############################################################################################################################################

  warnings.warn(WARNING_MSG % ('   OpenCV   ', 'https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-Linux-Python#optional-opencv'))
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/cntk/cntk_py.py in swig_import_helper()
     17         try:
---> 18             return importlib.import_module(mname)
     19         except ImportError:

/usr/lib/python3.6/importlib/__init__.py in import_module(name, package)
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127 

/usr/lib/python3.6/importlib/_bootstrap.py in _gcd_import(name, package, level)

/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load(name, import_)

/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)

ModuleNotFoundError: No module named 'cntk._cntk_py'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-29-f8cc57397495> in <module>()
----> 1 import cntk as c

/usr/local/lib/python3.6/dist-packages/cntk/__init__.py in <module>()
     20 import numpy as np
     21 
---> 22 from . import cntk_py
     23 
     24 #

/usr/local/lib/python3.6/dist-packages/cntk/cntk_py.py in <module>()
     19         except ImportError:
     20             return importlib.import_module('_cntk_py')
---> 21     _cntk_py = swig_import_helper()
     22     del swig_import_helper
     23 elif _swig_python_version_info >= (2, 6, 0):

/usr/local/lib/python3.6/dist-packages/cntk/cntk_py.py in swig_import_helper()
     18             return importlib.import_module(mname)
     19         except ImportError:
---> 20             return importlib.import_module('_cntk_py')
     21     _cntk_py = swig_import_helper()
     22     del swig_import_helper

/usr/lib/python3.6/importlib/__init__.py in import_module(name, package)
    124                 break
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127 
    128 

我安装了opencv。版本是cv2。我希望使用RNN和LSTM网络在Google合作实验室中对模型进行序列化。 如何纠正此错误?

1 个答案:

答案 0 :(得分:3)

通常,在寻求与colab的帮助时,最好共享一个可重现该问题的最小笔记本,这样一来,尝试帮助您完成操作的人就很清楚了(例如,“我安装了opencv版本3.4.4”内容丰富,例如查看您所使用的精确命令以及它们生成的任何输出,等等)。

至少第一个警告可能无法解决,因为colab的VM运行ubuntu:18.04,但是CNTK官方不支持16.04以外的任何其他内容:“请注意,仅正式支持Ubuntu 16.04。” (来自https://docs.microsoft.com/en-us/cognitive-toolkit/setup-linux-python?tabs=cntkpy26

我对CNTK或它的部门不熟悉,但这似乎可以成功导入(尽管有警告)并成功显示模块的界面:

!apt-get install --no-install-recommends openmpi-bin libopenmpi-dev libopencv-dev python3-opencv python-opencv && ln -sf /usr/lib/x86_64-linux-gnu/libmpi_cxx.so /usr/lib/x86_64-linux-gnu/libmpi_cxx.so.1 && ln -sf /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so.12 && ln -sf /usr/lib/x86_64-linux-gnu/libmpi.so /usr/lib/x86_64-linux-gnu/libmpi.so.12 && pip install cntk
import cntk as C
help(C)

(在py3 / CPU colab笔记本中;很遗憾,第一行要花费近2m的时间才能运行,所以请耐心等待)