你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
设置 Linux Python
所需包
OpenMPI
CNTK需要在系统上安装 OpenMPI 1.10.x。
在 Ubuntu 16.04 上安装它,如下所示:
sudo apt-get install openmpi-bin
通过设置 LD_LIBRARY_PATH
,确保找到其库,例如。
在 Linux 上安装适用于 Python 的CNTK
本页将引导你完成在 Linux 中从 Python 安装要使用的Microsoft Cognitive Toolkit (CNTK) 的过程。 请注意,CNTK 2.3.1 和更低版本支持 Ubuntu 14.04。 所有版本 2.4+ 正式仅支持 Ubuntu 16.04。
如果你正在寻找任何其他支持来设置CNTK生成环境或在系统上安装CNTK,则应改为转到此处。
我们提供三种方法来安装适用于 Python 的CNTK:
-
PyPI 安装
-
每个版本的 Wheel (.whl) 文件
-
夜间生成
1.从 PyPI 安装
从 CNTK 2.5 版开始,用户现在可以通过 PyPI 安装CNTK。 请注意,仅正式支持 Ubuntu 16.04。
若要安装仅限 CPU 版本的CNTK,
C:\> pip install cntk
安装 CNTK的 GPU 版本:
C:\> pip install cntk-gpu
升级现有CNTK安装
如果已安装以前版本 (2.5+) CNTK,则可以通过现有安装来安装新版本的 CNTK。
若要升级仅限 CPU 版本的CNTK,
C:\> pip install --upgrade --no-deps cntk
若要升级CNTK的 GPU 版本,请执行以下操作:
C:\> pip install --upgrade --no-deps cntk-gpu
注意: 我们建议你没有同时安装这两个包 cntk
和 cntk-gpu
包。
2.从 Wheel 文件安装
根据 Python 和 CNTK 版本 (CPU 或 GPU) ,我们提供了不同的 wheel (.whl) 文件来安装CNTK。
请从下面的列表中选择正确的安装,并在安装过程中替换名称和/或链接。 对于 CNTK 2.5+,建议改为通过 PyPI 进行安装。
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.7.post1-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.7.post1-cp27-cp27mu-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.7.post1-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.7.post1-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.7.post1-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.7.post1-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.6-cp27-cp27mu-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.6-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.6-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5.1-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5.1-cp27-cp27mu-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5.1-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5.1-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5.1-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5.1-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5-cp27-cp27mu-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.4-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.4-cp27-cp27mu-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.4-cp27-cp27mu-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.4-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.4-cp35-cp35m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.4-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.4-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.4-cp36-cp36m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.4-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp27-cp27mu-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp27-cp27mu-linux_x86_64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp34-cp34m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp34-cp34m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp34-cp34m-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp35-cp35m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp36-cp36m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp27-cp27mu-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp27-cp27mu-linux_x86_64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp34-cp34m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp34-cp34m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp34-cp34m-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp35-cp35m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp36-cp36m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp27-cp27mu-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp27-cp27mu-linux_x86_64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp34-cp34m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp34-cp34m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp34-cp34m-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp35-cp35m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp36-cp36m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp27-cp27mu-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp27-cp27mu-linux_x86_64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp34-cp34m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp34-cp34m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp34-cp34m-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp35-cp35m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp36-cp36m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp36-cp36m-linux_x86_64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp27-cp27mu-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp27-cp27mu-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp27-cp27mu-linux_x86_64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp34-cp34m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp34-cp34m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp34-cp34m-linux_x86_64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp35-cp35m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp35-cp35m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp35-cp35m-linux_x86_64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp36-cp36m-linux_x86_64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp36-cp36m-linux_x86_64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp36-cp36m-linux_x86_64.whl |
Anaconda3
我们已使用 Anaconda3 4.1.1 和 Python 版本 2.7、3.5 以及 Python 版本 3.6 和 Anaconda3 4.3.1 测试CNTK。 如果没有 Anaconda3 Python 安装,请安装 Anaconda3 4.1.1 Python for Linux (64 位) 。
下面我们假设满足 上述先决条件 。
如果计划使用启用了 GPU 的 CNTK 版本,则需要在系统上安装符合 CUDA 9 的图形卡和最新的图形驱动程序。
此外,我们假设已安装 Anaconda,并且它已列在 PATH 中的其他任何 Python 安装之前。
没有环境的 pip 安装
这是最简单的选项,唯一的避免原因是需要特定版本的特定包。 如果你有需要旧版 numpy 的其他包,请跳到 本部分。
首次CNTK安装
如果这是首次安装CNTK,则运行
$ pip install <url>
其中 <url>
,此页顶部表中的相应滚轮文件 URL。 例如,如果运行 Python 3.5
$ pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp35-cp35m-linux_x86_64.whl
继续 执行快速安装测试
升级现有CNTK安装
如果已安装以前版本的CNTK,则可以通过现有安装安装安装新版本的 CNTK。 提供 --upgrade
和 --no-deps
选项非常重要。
$ pip install --upgrade --no-deps <url>
其中 <url>
,此页顶部表中的相应滚轮文件 URL。 完成此升级步骤后,可以在 Python 中开始使用CNTK,或安装示例和教程。
快速安装测试
通过查询CNTK版本,快速测试安装成功:
$ python -c "import cntk; print(cntk.__version__)"
现已成功安装CNTK,可以在 Python 中开始开发/训练/评估CNTK!
继续 安装示例和教程
在环境中安装 pip
在下面,我们将在 Anaconda 中创建新的 Python 3.5 环境,cntk-py35
并将 pip-install CNTK安装到此环境中。 如果需要其他CNTK版本、Python 版本或环境名称,请相应地调整参数。
打开命令行界面,创建环境,使其处于活动状态,并安装 pip-install CNTK:
$ conda create --name cntk-py35 python=3.5 numpy scipy h5py jupyter
$ activate cntk-py35
$ pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp35-cp35m-linux_x86_64.whl
通过查询CNTK版本,快速测试安装成功:
$ python -c "import cntk; print(cntk.__version__)"
现已成功安装CNTK,可以在 Python 中开始开发/训练/评估CNTK!
继续 学习安装示例和教程
Anaconda2
如果需要 Python 2.7 根环境,建议安装 Anaconda2 4.3.0 Python for Linux (64 位) 。
下面我们假设满足 上述先决条件 。
如果计划使用启用了 GPU 的 CNTK 版本,则需要在系统上安装符合 CUDA 9 的图形卡和最新的图形驱动程序。
此外,我们假设已安装 Anaconda2,并在 PATH 中任何其他 Python 安装之前列出它。
Anaconda2:pip 安装
Anaconda2 上CNTK的安装步骤与
只需确保从此页面顶部的 URL 表中选择 Python 2.7 兼容的滚轮文件。
3. 从夜间生成安装
如果你希望从最新的夜间版本(而不是官方版本)安装或升级CNTK,我们提供CNTK夜间包。 可以从此处的最新夜间版本访问CNTK包。
如果使用夜间生成,则除了 此处 列出的 OpenMPI 要求之外,还需要单独安装一些第三方包并将其安装到 PATH 环境变量 () 。 按照以下部分获取说明。 例如,如果要安装 CNTK 的 GPU 版本,则还需要安装以下部分中列出的特定于 GPU 的包。
环境变量和必需包
可选:GPU-Specific包
如果要将CNTK与 GPU 支持配合使用,请按照此页面相应地安装和配置环境。
安装上述 GPU 包后,将它们添加到 PATH 环境变量中,例如
MKL
默认CNTK数学库是 Intel 数学内核库, (Intel MKL) 。 按照 此页面 进行安装
- 将其路径导出到环境变量
LD_LIBRARY_PATH
,例如:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
可选:OpenCV
CNTK 2.2 要求安装 OpenCV 计算机视觉 (OpenCV) ,但 CNTK 2.3+ 是可选的。 按照 此页面 进行安装。
如果要使用以下组件,则需要安装适用于 CNTK 2.3+ 的 OpenCV:
- CNTK图像读取器
- CNTK图像编写器 - 需要使用 TensorBoard 的图像功能。
导出指向 OpenCV 生成文件夹的环境变量 LD_LIBRARY_PATH
,例如
export LD_LIBRARY_PATH=/usr/local/opencv-3.1.0/lib:$LD_LIBRARY_PATH
安装示例和教程
我们提供了各种示例和教程,其中包含CNTK。 安装CNTK后,可以安装示例/教程和 Jupyter 笔记本。 如果在 Python 环境中安装了CNTK,请确保在运行此命令之前激活了环境:
$ python -m cntk.sample_installer
这将下载示例/教程,安装所需的 Python 包,并将示例复制到名为CNTK-Samples-VERSION
(VERSION
的目录中,替换为当前工作目录下的实际CNTK版本) 。
现在可以按照 标准说明 从 Python 测试安装,并运行教程或 Jupyter 笔记本。