Ubuntu20.04系统下安装 CNTK深度学习框架
1. CNTK框架简介
Computational Network Toolkit (CNTK) 是微软出品的开源深度学习工具包。根据微软开发者的描述,CNTK的性能比Caffe,Theano, TensoFlow等主流工具都要强。它支持CPU和GPU模式,所以没有GPU,或者神经网络比较小的实验,直接用CPU版的CNTK跑就行了。 其开源主页在CNTK github 它把神经网络描述成一个有向图的结构,叶子节点代表输入或者网络参数,其他节点计算步骤。 它支持卷积神经网络和递归神经网络。
教程可以参考以下的三个方面:
2. 安装
有些AMD显卡也可以进行GPU加速,基于AMD ROCM框架,由于NVIDIA显卡加速在市面上用得比较多,所以笔者这里使用NVIDIA显卡加速环境,所以首先安装CUDA和CUDNN环境。具体的安装过程可以参考这篇博文: Ubuntu安装CUDA和CUDNN教程.
由于在Ubuntu20.04中默认的Python环境是Python3.8,在官网上有详细的版本环境需求。
可见我们需要安装较低版本的Python环境。这里我们选择了Python3.6.8环境。在Python官网上下载源码包进行安装。
解压安装包,进入安装文件夹后,进行安装
tar -xvf Python-3.6.8.tgz
cd Python-3.6.8
./configure
make
sudo make install
经过一段时间源码的编译之后,即可以安装成功Python环境。然后根据实际情况创建软连接
sudo ln -s -f /usr/local/bin/python3.6 /usr/local/python3.6
sudo ln -s -f /usr/local/bin/pip3.6 /usr/local/pip3.6
遇到的问题
在编译源码的时候可以发现_ssl
包并没有找到,有很多的教程上说在python源码编译的时候需要加上--with-ssl
参数就能安装,但是这并不能够解决这个问题,会出现错误configure: WARNING: unrecognized options: --with-ssl
,即未识别的选项。若没有ssl
包的话,会出现错误pip is configured with locations that require TLS/SSL
。
参考博文: python3解决 ModuleNotFoundError: No module named ‘_ssl’ ,但是按照博文修改之后,并没有解决问题,编译的时候出现了错误
error: openssl/rsa.h: No such file or directory
所以这并没有根本解决问题。这样就想到可能缺少openssl对应的库文件。同时在源码编译的时候缺少tk库,所以在Ubuntu中安装
sudo apt-get install libssl-dev python3-tk
重新编译,即可以安装成功对应的安装包。ssl模块成功安装
现在我们就可以安装CNTK的环境了。创建一个虚拟环境
mkvirtualenv --python=/usr/bin/python3.6 cntk
直接安装cntk-gpu
pip install cntk-gpu
或者是按照官网上进行安装:
pip install https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.7.post1-cp36-cp36m-linux_x86_64.whl
这样就安装成功了CNTK的CUDA加速环境。
参考
[1] CNTK文档官网
[2] Linux下Python3的源码编译安装和卸载方法
[3] ubuntu 20.04 安装python 3.6.8
[4] The Microsoft Cognitive Toolkit
[5] CNTK Setup