你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
设置 Windows Python
在 Windows 上安装 Python CNTK
本页将指导你完成在 Windows 中安装要从 Python 使用的Microsoft Cognitive Toolkit (CNTK) 的过程。 如果你正在寻找任何其他支持来设置CNTK生成环境或在系统上安装CNTK,则应改为转到此处。
我们提供了三种方法来安装适用于 Python 的CNTK:
-
PyPI 安装
-
每个版本的 Wheel (.whl) 文件
-
夜间生成
1. 从 PyPI 安装
从 CNTK 2.5 版开始,用户现在可以通过 PyPI 安装CNTK。
如果这是你第一次通过 PyPI 安装CNTK,我们建议你首先卸载任何以前的版本: pip uninstall <url>
首次CNTK安装
若要安装仅 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-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.7.post1-cp27-cp27m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.7.post1-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.7.post1-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.7.post1-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.7.post1-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.6-cp27-cp27m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.6-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.6-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5.1-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5.1-cp27-cp27m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5.1-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5.1-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5.1-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5.1-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5-cp27-cp27m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.5-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.4-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.4-cp27-cp27m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.4-cp27-cp27m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.4-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.4-cp35-cp35m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.4-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.4-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.4-cp36-cp36m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.4-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp27-cp27m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp27-cp27m-win_amd64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp34-cp34m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp34-cp34m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp34-cp34m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp35-cp35m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3.1-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3.1-cp36-cp36m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3.1-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp27-cp27m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp27-cp27m-win_amd64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp34-cp34m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp34-cp34m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp34-cp34m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp35-cp35m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.3-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.3-cp36-cp36m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.3-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp27-cp27m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp27-cp27m-win_amd64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp34-cp34m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp34-cp34m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp34-cp34m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp35-cp35m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.2-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp36-cp36m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.2-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp27-cp27m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp27-cp27m-win_amd64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp34-cp34m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp34-cp34m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp34-cp34m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp35-cp35m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.1-cp36-cp36m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.1-cp36-cp36m-win_amd64.whl |
Python |
种类 |
URL |
2.7 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp27-cp27m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp27-cp27m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp27-cp27m-win_amd64.whl |
3.4 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp34-cp34m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp34-cp34m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp34-cp34m-win_amd64.whl |
3.5 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp35-cp35m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp35-cp35m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp35-cp35m-win_amd64.whl |
3.6 |
CPU-Only |
https://cntk.ai/PythonWheel/CPU-Only/cntk-2.0-cp36-cp36m-win_amd64.whl |
|
GPU |
https://cntk.ai/PythonWheel/GPU/cntk-2.0-cp36-cp36m-win_amd64.whl |
|
GPU-1bit-SGD |
https://cntk.ai/PythonWheel/GPU-1bit-SGD/cntk-2.0-cp36-cp36m-win_amd64.whl |
Anaconda3
我们一直在使用 Anaconda3 4.1.1 (64 位) 和 Python 版本 2.7 和 3.5 测试CNTK,以及 Python 版本 3.6 的 Anaconda3 4.3.1。 如果没有 Anaconda3 Python 安装,请安装 Anaconda3 4.1.1 Python for Windows (64 位) 。
下面假设已安装 Anaconda,并在 PATH 中的其他任何 Python 安装之前列出它。 如果打算使用启用了 GPU 的 CNTK 版本,则需要在系统上安装符合 CUDA 9 的图形卡和最新的图形驱动程序。 请确保安装 CUDA 9.0,而不是 CUDA 9.1。
没有环境的 pip 安装
这是最简单的选项,也是避免的唯一原因是需要特定版本的特定包。 如果你有其他需要旧版 numpy 的包,请跳到 此部分。
首次CNTK安装
如果这是首次安装CNTK,请运行
C:\> pip install <url>
其中 <url>
,此页顶部表中的相应滚轮文件 URL。 例如,如果你有 Python 3.5 并想要安装仅限 CPU 的版本,请运行
C:\> pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp35-cp35m-win_amd64.whl
继续 执行快速安装测试
升级现有CNTK安装
如果已安装以前版本的CNTK,可以通过现有安装安装安装新版本CNTK。 提供 --upgrade
和 --no-deps
选项非常重要。
C:\> pip install --upgrade --no-deps <url>
其中 <url>
,此页顶部表中的相应滚轮文件 URL。 完成此升级步骤后,可以在 Python 中开始使用 CNTK,或者安装示例和教程。
快速安装测试
通过查询CNTK版本,快速测试安装是否成功:
C:\> 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:
C:\> conda create --name cntk-py35 python=3.5 numpy scipy h5py jupyter
C:\> activate cntk-py35
C:\> pip install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.6-cp35-cp35m-win_amd64.whl
通过查询CNTK版本,快速测试安装是否成功:
C:\> python -c "import cntk; print(cntk.__version__)"
现已成功安装CNTK,可以在 Python 中使用 CNTK开始开发/训练/评估!
继续 学习安装示例和教程
Anaconda2
如果需要 Python 2.7 根环境,建议安装 Anaconda2 4.3.0.1 (64 位) 。
下面假设已安装 Anaconda2,并在 PATH 中的其他任何 Python 安装之前列出它。 如果打算使用启用了 GPU 的 CNTK版本,则需要在系统上安装符合 CUDA 9 的图形卡和最新的图形驱动程序。
Anaconda2:CNTK先决条件
CNTK要求Visual C++ Redistributable for Visual Studio 2017
在系统上安装 (在许多情况下,这种情况已) 。
可以在此处下载 VS2017 运行时 (VC_redist.x64.exe
) 的安装程序。
Anaconda2: pip install
Anaconda2 上CNTK的安装步骤与
只需确保从此页面顶部的 URL 表中选择 Python 2.7 兼容滚轮文件。
3. 从夜间版本安装
如果你希望从最新的夜间版本(而不是官方版本)安装或升级CNTK,我们提供CNTK夜间包。 可以从此处的最新夜间版本访问CNTK包。
如果使用夜间生成,则需要单独安装一些第三方包并将其添加到 PATH 环境变量。 按照以下部分的说明操作。 例如,如果要安装 CNTK 的 GPU 版本,则还需要安装以下部分中列出的特定于 GPU 的包。
环境变量和必需包
可选:GPU-Specific包
如果要将CNTK与 GPU 配合使用,请按照此页面相应地安装和配置环境。
安装上述 GPU 包后,将它们添加到 PATH 环境变量中,例如
setx PATH "C:\Program Files\NVIDIA Corporation\NVSMI;%PATH%"
setx PATH "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;%PATH%"
setx PATH "C:\local\cudnn-9.0-v7.0\cuda\bin;%PATH%"
MKL
默认CNTK数学库是 Intel 数学内核库 (Intel MKL) 。 按照 此页面 在系统中安装它。
setx PATH "c:\local\mklml-2018.0.3\lib;%PATH%"
可选:OpenCV
CNTK 2.2 需要安装开放源代码计算机视觉 (OpenCV) ,但CNTK 2.3+ 是可选的。 按照 此页面 进行安装。
如果要使用以下组件,则需要安装 CNTK 2.3+ 的 OpenCV:
- CNTK图像读取器
- CNTK图像编写器 - 需要使用 TensorBoard 的图像功能。
将指向 OpenCV 生成文件夹的环境变量 PATH
前面,例如
setx PATH "C:\local\opencv3.10\build\x64\vc14\bin;%PATH%"
安装示例和教程
我们提供了各种示例和教程,其中包含CNTK。 安装CNTK后,可以安装示例/教程和 Jupyter 笔记本。 如果将CNTK安装到 Python 环境中,请确保在运行以下命令之前激活了环境:
C:\> python -m cntk.sample_installer
这将下载示例/教程,安装所需的 Python 包,并将示例复制到名为CNTK-Samples-VERSION
(VERSION
的目录中,替换为当前工作目录下的实际CNTK版本) 。
现在可以按照 标准说明 从 Python 测试安装并运行教程或 Jupyter 笔记本。