設定 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
若要安裝 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-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 版和 Anaconda3 4.3.1 與 Python 3.6 版測試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 cntk-py35
內建立名為 的新 Python 3.5 環境,並將 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套件
如果您想要搭配 GPU 支援使用CNTK,請遵循此頁面來據以安裝和設定環境。
安裝上述 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 的 Image 功能。
匯出指向 OpenCV 組建資料夾的環境變數 LD_LIBRARY_PATH
,例如
export LD_LIBRARY_PATH=/usr/local/opencv-3.1.0/lib:$LD_LIBRARY_PATH
安裝範例和教學課程
我們提供各種範例和教學課程與CNTK。 安裝CNTK之後,您可以安裝範例/教學課程和 Jupyter Notebook。 如果您將CNTK安裝到 Python 環境中,請先確定您已啟動環境,再執行此命令:
$ python -m cntk.sample_installer
這會下載範例/教學課程、安裝必要的 Python 套件,並將範例複製到名為 CNTK-Samples-VERSION
(VERSION
的目錄,會以目前工作目錄下方的實際CNTK版本) 取代。
您現在可以遵循 標準描述 ,從 Python 測試安裝,並執行教學課程或 Jupyter Notebook。