設定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
若要安裝 GPU 版本的 CNTK:
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) ,我們提供不同的轉輪 (.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,以及 Anaconda3 4.3.1 搭配 Python 3.6 版來測試CNTK。 如果您沒有 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 cntk-py35
內建立名為 的新 Python 3.5 環境,並將 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 Runtime (VC_redist.x64.exe
) 安裝程式。
Anaconda2: pip install
Anaconda2 上CNTK的安裝步驟與
只要確定您從此頁面頂端的 URL 資料表選取 Python 2.7 相容滾輪檔案。
3.從夜間組建安裝
如果您想要從最新的夜間組建安裝或升級CNTK,而不是官方版本,我們提供CNTK夜間套件。 您可以從這裡的最新夜間組建存取CNTK套件。
如果您使用夜間組建,則必須個別安裝一些協力廠商套件,並將其新增至您的 PATH 環境變數。 請遵循下一節的指示。 例如,如果您要安裝 CNTK 的 GPU 版本,您也必須安裝下一節所列的 GPU 特定套件。
環境變數和必要套件
選擇性:GPU-Specific套件
如果您想要搭配 GPU 使用CNTK,請遵循此頁面來據以安裝和設定環境。
安裝上述 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 電腦視覺 (OpenCV) ,但 CNTK 2.3+ 是選擇性的。 請遵循 此頁面 進行安裝。
如果您想要使用下列元件,您必須安裝適用于 CNTK 2.3+ 的 OpenCV:
- CNTK影像讀取器
- CNTK影像寫入器 - 需要使用 TensorBoard 的 Image 功能。
在指向 OpenCV 組建資料夾的環境變數 PATH
前面加上,例如
setx PATH "C:\local\opencv3.10\build\x64\vc14\bin;%PATH%"
安裝範例和教學課程
我們提供各種範例和教學課程與CNTK。 安裝CNTK之後,您可以安裝範例/教學課程和 Jupyter Notebook。 如果您將CNTK安裝到 Python 環境中,請先確定您已啟動環境,再執行此命令:
C:\> python -m cntk.sample_installer
這會下載範例/教學課程、安裝必要的 Python 套件,並將範例複製到名為 CNTK-Samples-VERSION
(VERSION
的目錄,會以目前工作目錄下方的實際CNTK版本) 取代。
您現在可以遵循 標準描述 ,從 Python 測試安裝,並執行教學課程或 Jupyter Notebook。