06.18 Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速(趣說人工智能版權)。最新更新:

  • 支持5個框架(Keras / Tensorflow / CNTK / MXNet和PyTorch),
  • 支持3個GPU加速Keras後端(CNTK,Tensorflow或MXNet),
  • 不需要安裝Visual Studio,
  • 不需要單獨安裝MinGW,
  • 使用了許多python庫的更新版本。

當然有很多指南可以幫助您在Linux或Mac OS上構建偉大的深度學習(DL)設置(包括使用Tensorflow,不幸的是,在這篇文章中,不能很容易地在Windows上安裝),但很少關心構建高效的Windows 10 本機設置。大多數人專注於運行託管在Windows上或使用Docker的Ubuntu VM,這是不必要的,並且最終是次優的步驟。

我們還找到了足夠的誤導/不贊成的信息,以便為Keras,Tensorflow,CNTK,MXNet和PyTorch的最新穩定版本提供分步指南。可以一起使用(例如Keras和Tensorflow後端),也可以獨立使用 - PyTorch不能用作Keras後端,TensorFlow可以獨立使用 - 它可以讓一些功能最強大的深度學習python庫在本機上工作視窗。

如果您必須在Windows 10上運行DL設置,那麼這裡包含的信息將對您有用。2017年7月,2017 年5月和2017 年1月的舊版安裝說明仍然可用。他們允許您使用Theano作為Keras後端。

依賴

以下是我們用於在Windows 10(版本1709 OS Build 16299.371)上進行深入學習的工具和庫的摘要列表:

  1. Visual Studio 2015 Community Edition Update 3 w。Windows Kit 10.0.10240.0
  • 用於C / C ++編譯器(不是IDE)和SDK。由於CUDA中的Windows編譯器支持而選擇了此特定版本。
  1. python(64位)w。使用MKL 2018.0.3的Python 3.6(Anaconda3-5.2.0)[支持Tensorflow]或Python 2.7(Anaconda2-5.2.0)[無Tensorflow支持]
  • Python發行版為我們提供了NumPy,SciPy和其他科學圖書館
  • MKL用於其許多線性代數運算的CPU優化實現
  1. CUDA 9.0.176(64位)
  • 用於GPU數學庫,卡驅動程序和CUDA編譯器
  1. 針對CUDA 9.0.176的cuDNN v7.0.4(2017年11月13日)
  • 用於運行速度更快的卷積神經網絡
  1. 具有三種不同後端的Keras 2.1.6:Tensorflow-gpu 1.8.0,CNTK-gpu 2.5.1和MXNet-cuda90 1.2.0
  • Keras用於在Tensorflow或CNTK上進行深度學習
  • Tensorflow和CNTK是後端,用於評估多維陣列上的數學表達式
  • Theano是一個傳統的後端,不再處於積極的發展之中
  1. PyTorch v0.4.0

硬件

  1. 戴爾Precision T7900,64GB內存
  • Intel Xeon E5-2630 v4 @ 2.20 GHz(1個處理器,總共10個內核,20個邏輯處理器)
  1. NVIDIA GeForce Titan X,12GB內存
  • 驅動程序版本:390.77 / Win 10 64
  1. NVIDIA GeForce GTX 1080 Ti,11GB RAM
  • 驅動程序版本:390.77 / Win 10 64

安裝步驟

我們喜歡將我們的工具包和庫保存在一個無名的單個根文件夾中e:\\toolkits.win,因此,無論何時您看到一個以e:\\toolkits.win下面開頭的Windows路徑,都要確保將其替換為您自己的工具包驅動器和文件夾應該包含的任何內容。

工具包

Visual Studio 2015 Community Edition Update 3 w。Windows Kit 10.0.10240.0

使用Update 3(x86)下載Visual Studio Community 2015。它由CUDA工具包使用。

請注意,要下載,需要免費的Visual Studio Dev Essentials許可證或完整的Visual Studio訂閱。

Anaconda 5.2.0(64位)(Python 3.6 TF支持/ Python 2.7無TF支持)

本教程最初是使用Python 2.7創建的。由於Tensorflow已成為Keras的後端,我們決定默認使用Python 3.6來記錄安裝步驟。根據您自己的首選配置,使用e:\\toolkits.win\\anaconda3-5.2.0或e:\\toolkits.win\\anaconda2-5.2.0作為安裝Anaconda的文件夾。從這裡下載Python 3.6 Anaconda版本以及從那裡下載Python 2.7版本:

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速

定義以下變量並更新PATH,如下所示:

  1. PYTHON_HOME用值定義sysenv變量e:\\toolkits.win\\anaconda3-5.2.0
  2. 添加%PYTHON_HOME%,%PYTHON_HOME%\\Scripts和%PYTHON_HOME%\\Library\\bin以PATH

創建一個 dlwin36 conda環境

安裝Anaconda後,打開Windows命令提示符並執行:$ conda create --yes -n dlwin36 numpy scipy mkl-service m2w64-toolchain libpython matplotlib pandas scikit-learn tqdm jupyter h5py cython

這是上述命令的輸出日誌。接下來,使用activate dlwin36來激活這個新的環境。順便說一句,如果你已經有一個較舊的dlwin36環境,你可以使用它來刪除它conda env remove -n dlwin36。

可選但強烈推薦的圖像處理庫

如果我們要使用GPU,為什麼我們要安裝像MKL這樣的CPU優化的線性代數庫?通過我們的設置,大多數深度學習的咕嚕聲都是由GPU執行的,這是正確的,但CPU不是空閒的。基於圖像的Kaggle競賽的一個重要部分是數據增強。在這種情況下,數據增強是通過使用圖像處理操作員對原始訓練樣本進行變換來製造額外輸入樣本(更多訓練圖像)的過程。諸如下采樣和(以均值為中心)歸一化等基本變換也是需要的。如果你覺得冒險,你會想嘗試額外的預處理增強(去噪,直方圖均衡等)。您當然可以將GPU用於此目的,並將結果保存到文件中。然而,在實踐中,這些操作通常在CPU上並行執行,而GPU正在忙於學習深度神經網絡的權重和使用後丟棄的增強數據。

如果您的深度學習項目是基於圖像的,我們還建議安裝以下庫:

  • scikit-image
  • :Python編程語言的開源圖像處理庫,包括分割,幾何變換,色彩空間操作,分析,過濾,形態學,特徵檢測等算法。請參閱此頁面瞭解更多信息。
  • opencv
  • :一個主要針對實時計算機視覺的編程功能庫。它具有C ++,Python和Java接口,並支持許多操作系統平臺,包括Windows。請參閱此頁面以獲取更多信息。
  • imgaug
  • :這是一個基於圖像的Kaggle比賽的主食,這個python庫通過將一組輸入圖像轉換成一個新的,更大的一組稍微變化的圖像來幫助您增強機器學習項目的圖像。詳情請參閱此頁面。

要安裝這些庫,請使用以下命令:$ activate dlwin36(dlwin36) $conda install --yes pillow scikit-image(dlwin36) $conda install --yes -c conda-forge opencv(dlwin36) $pip install git+https://github.com/aleju/imgaug

這是上述命令的輸出日誌。

CUDA 9.0.176(64位)

從NVidia網站下載CUDA 9.0.176(64位)為什麼不安裝CUDA 9.1?簡單地說,因為在撰寫本文時,Tensorflow 1.8仍然使用CUDA 9.0(請參閱問題#15140)。選擇適當的目標平臺:

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速

依次運行下載的安裝程序。在

e:\\toolkits.win\\cuda-9.0.176

以下位置安裝文件:

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速

完成後,安裝程序應該已經創建了一個系統環境(sysenv)變量命名

CUDA_PATH,並加入%CUDA_PATH%\\bin以及%CUDA_PATH%\\libnvvp

對PATH檢查確實如此。出於某種原因,如果CUDA環境變量缺失,那麼:

  1. 定義一個
  2. CUDA_PATH以該值命名的系統環境(sysenv)變量e:\\toolkits.win\\cuda-9.0.176
  3. 添加
  4. %CUDA_PATH%\\bin和%CUDA_PATH%\\libnvvp到PATH

針對CUDA 9.0的cuDNN v7.0.4(2017年11月13日)

根據NVidia的網站,“cuDNN為標準例程提供了高度優化的實現,例如前向和後向卷積,池化,規範化和激活層,”卷積網絡體系結構的標誌。從這裡下載cuDNN 。選擇與CUDA版本匹配的Windows 10的cuDNN Library.

深入學習python庫

安裝keras2.1.6

為什麼不安裝Keras和各種後端(Tensorflow,CNTK或Theano)的最新出血版/ dev版本?簡而言之,因為它使得可重複研究變得更加困難。如果您的工作夥伴或Kaggle團隊成員在不同於開發時間的時間從開發分支安裝最新代碼,那麼您很可能會在您的計算機上運行不同的代碼庫,從而增加了即使使用相同輸入數據的幾率(相同的隨機種子等),當你不應該時,你仍然會得到不同的結果。僅憑這個原因,我們強烈建議只使用點發布版本,跨機器使用同一版本發行版,並且如果不能僅使用安裝腳本,則始終記錄您使用的版本。

如下安裝Keras:(dlwin36) $$ pip install keras

安裝tensorflow-gpu1.8.0(獨奏,或作為Keras後端)

運行以下命令來安裝Tensorflow:$ pip install tensorflow-gpu 如果您希望TensorFlow成為默認Keras後端,請定義一個KERAS_BACKEND以該值命名的系統環境變量tensorflow。

安裝cntk-gpu

2.5.1(單獨或作為Keras後端)

截至記錄這個環節,安裝CNTK GPU如下:(dlwin36) $ pip install cntk-gpu如果您希望CNTK成為默認的Keras後端,請定義一個KERAS_BACKEND以該值命名的系統環境變量cntk。

安裝mxnet-cu901.2.0(獨奏,或作為Keras後端)

MXNet是一個深度學習框架,有亞馬遜的強大支持(通過AWS)。Microsoft也支持Azure。要安裝它,請運行以下命令:(dlwin36) $ pip install mxnet-cu90如果您希望MXNet成為默認Keras後端,請定義一個KERAS_BACKEND以該值命名的系統環境變量mxnet。

安裝pytorch0.4.0

PyTorch是Facebook AI Research(FAIR)對Google Tensorflow的回應。只有版本v0.4.0才正式支持Windows(x64)。安裝程序需要安裝

pytorch,cuda90等torchvision,首先,運行以下命令:(dlwin36) $ conda install pytorch其次,torchvision用這個命令安裝:(dlwin36torch) $ pip install torchvision如果您在Windows上使用PyTorch存在問題,我強烈建議您閱讀他們的Windows常見問題解答。


分享到:


相關文章: