通過本教程驻呐,你將學(xué)會在 Windows 10 下簡單搭建 Anaconda 3 + Python 3.6 + TensorFlow 1.8 + CUDA 9.0 + cuDNN 7.1 + MinGW + Keras 2.1 + Spyder or Jupyter 的機器學(xué)習(xí)環(huán)境
由于最近要完成一個關(guān)于機器學(xué)習(xí)的項目扇苞,經(jīng)過好幾次折騰衷恭,終于總結(jié)出了一個較為完整的在 Windows 下的安裝教程:
預(yù)告:最近嘗試使用 Windows 下的 Linux 子系統(tǒng)來搭建機器學(xué)習(xí)環(huán)境。
目前与涡,經(jīng)測試在 Windows 10 Pro 1803 x64 的系統(tǒng)中成功運行如下機器學(xué)習(xí)環(huán)境:
- Windows 10(首先你要有一臺運行 Windows 10 最新版本的電腦)
- CUDA 9.0(不要問為什么不用最新版本的痒谴,TensorFlow 會對9.1報錯的)
- cuDNN 7.1(這個可以是最新版不過要對應(yīng)相應(yīng)的 CUDA 版本)
- MinGW(GCC編譯器套件是整,避免報錯 gpu sync failed)
- Anaconda 3(建議去官網(wǎng)上下載,后附下載鏈接)
- Spyder(可以使用其他的編譯器拭嫁,不過建議之前用過 MATLAB 優(yōu)先使用)
- Jupyter(另一款比較熱門的編譯器畜挨,UI 界面較為好看)
- TensorFlow 1.8(還記得我們這次的主角是什么嘛,P.S. 官網(wǎng)上的中文頁面竟然沒有改版本號)
- Keras 2.1(基于 TensorFlow 后端支持)
隨后噩凹,這里會附上所有安裝文件的百度網(wǎng)盤地址 (密碼: 1knp)巴元,安裝文件內(nèi)容不斷更新中。驮宴。逮刨。關(guān)于使用conda install
指令下載過慢的問題(校園網(wǎng)可以通過使用ipv6解決),待我進(jìn)一步研究后,給出相應(yīng)的解決方案修己!
一恢总、安裝 CUDA? 工具包 9.0 和 cuDNN v7.1
根據(jù)官方文檔介紹,TensorFlow 有以下兩種版本:
僅支持 CPU 的 TensorFlow睬愤。如果您的系統(tǒng)沒有 NVIDIA? GPU片仿,就必須安裝此版本。請注意尤辱,此版本的 TensorFlow 通常更容易安裝(用時通常在 5 或 10 分鐘內(nèi))砂豌,所以即使您擁有 NVIDIA GPU,我們也建議先安裝此版本光督。預(yù)先構(gòu)建的二進(jìn)制文件將使用 AVX 指令阳距。
支持 GPU 的 TensorFlow。TensorFlow 程序在 GPU 上的運行速度通常要比在 CPU 上快得多结借。因此筐摘,如果您的系統(tǒng)配有滿足以下所示先決條件的 NVIDIA? GPU,并且您需要運行性能至關(guān)重要的應(yīng)用船老,則最終應(yīng)安裝此版本咖熟。
由此需要先確認(rèn)自由擁有一臺 NVIDIA? 的顯卡,并且算力在3.0或更高柳畔,如需了解支持的 GPU 卡的列表馍管,請參閱 NVIDIA 文檔。如果滿足上述要求荸镊,并需要安裝支持 GPU 的 TensorFlow咽斧,那么需要按照本節(jié)內(nèi)容進(jìn)行安裝。
1.1 下載 CUDA? 工具包 9.0 和 cuDNN v7.1
- 前往 CUDA? 工具包 9.0 官網(wǎng) 并按照下圖選擇在線 (network) 或者離線 (local) 安裝包進(jìn)行下載躬存。
- 前往 cuDNN v7.1 官網(wǎng) 并根據(jù)提示注冊會員并完成下載张惹。
- 至此關(guān)于 NVIDIA? GPU 所需要的所有安裝文件已經(jīng)準(zhǔn)備就緒:
1.2 安裝 CUDA? 工具包 9.0 和 cuDNN v7.1
運行
cuda_9.0.176_win10.exe
,并按照提示安裝岭洲,在這里需要注意:并不需要安裝完整的VS平臺宛逗,僅需要cpp編譯器即可(隨后會說明如何安裝GCC編譯器套件)安裝過程中屏幕會有閃爍,為正扯苁#現(xiàn)象雷激,不要慌張!告私!
可以選擇安裝升級補丁屎暇,筆者沒有裝,目前還蠻好的驻粟,也不知道裝了以后會不會出事根悼!
CUDA? 工具包 9.0 安裝完成后,轉(zhuǎn)到安裝目錄
%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v9.0
,將cudnn-9.0-windows10-x64-v7.1.zip
中的文件按照文件結(jié)構(gòu)解壓到該目錄下挤巡,并于相應(yīng)文件夾進(jìn)行合并剩彬。
1.3 測試安裝結(jié)果
在命令提示符(運行中輸入cmd
或在PowerShell
中輸入cmd
,下同)中輸入(大寫的矿卑!大寫的喉恋!大寫的!):
nvcc -V
如果有如下提示安裝信息,就說明大致是安裝成功了。
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:32_Central_Daylight_Time_2017
Cuda compilation tools, release 9.0, V9.0.176
二论笔、安裝 MinGW GCC 編譯器套件
如果是首次在 Windows 10 下搭建 TensorFlow 機器學(xué)習(xí)環(huán)境,并且電腦中之前沒有安裝過 VS 套件苔悦,那么在此強力建議安裝此編譯器套件轩褐。
在使用 Keras 時運行出現(xiàn)報錯gpu sync failed
椎咧。這個問題多半是因為缺少相應(yīng)的cpp
編譯器導(dǎo)致的。
2.1 下載 MinGW
前往 MinGW 官網(wǎng) 下載最新版本的 MinGW GCC 編譯器套件把介,下載按鈕在右上角Download Installer
(貌似需要在線安裝勤讽,好吧就是在線安裝)!
2.2 安裝 MinGW
萬事始于 Double Click 拗踢。雙擊安裝文件mingw-get-setup.exe
按照提示完成安裝即可脚牍!
至此 CUDA? 工具包 9.0 及其相應(yīng)編譯環(huán)境已經(jīng)安裝就緒了!同學(xué)巢墅,不妨跑個樣例試試诸狭!
三、安裝 Anaconda 3 集成 Python 3.6 環(huán)境
3.1 下載 Anaconda 3
前往 Anaconda 3 官網(wǎng) 下載最新版本的 Anaconda 3 集成環(huán)境君纫。
2.2 安裝 Anaconda 3
運行安裝軟件Anaconda3-5.1.0-Windows-x86_64.exe
驯遇,按照默認(rèn)提示進(jìn)行安裝。
3.3 測試安裝結(jié)果
- 安裝完成后在開始菜單下找到如下兩個程序 Anaconda Navigator(集成環(huán)境導(dǎo)航軟件)和 Anaconda Prompt(控制臺)
- 打開 Anaconda 3 控制臺(Anaconda Prompt蓄髓,下同)輸入
python
顯示相應(yīng)版本的提示信息則表示安裝成功叉庐。
(base) C:\Users\user>python
Python 3.6.5 |Anaconda custom (64-bit)| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
四、安裝 TensorFlow
4.1 按照以下步驟在 Anaconda 環(huán)境中安裝 TensorFlow
- 調(diào)用以下命令創(chuàng)建名為 TensorFlow 的 Conda 環(huán)境(或者可以創(chuàng)建一個自己喜歡的環(huán)境名稱会喝,將
tensorflow
字段改為keras
myspace
等等陡叠,后文也需要輸入相應(yīng)的環(huán)境名稱!):
conda create -n tensorflow pip python
- 調(diào)用以下命令以激活 Conda 中搭建的 TensorFlow 環(huán)境(調(diào)用
deactivate
命令以退出當(dāng)前環(huán)境)
activate tensorflow
- 調(diào)用以下命令更新該環(huán)境下的所有庫(避免隨后出現(xiàn)各種問題)肢执,直到出現(xiàn)下方提示(安裝時長取決于當(dāng)?shù)鼐W(wǎng)絡(luò)狀況):
conda upgrade --all
(base) C:\Users\user>conda upgrade --all
Solving environment: done
# All requested packages already installed.
- 調(diào)用以下命令以在 conda 環(huán)境中安裝 TensorFlow枉阵。要安裝僅支持 CPU 的 TensorFlow 版本,請輸入以下命令:
pip install --ignore-installed --upgrade tensorflow
- 要安裝 GPU 版本的 TensorFlow预茄,請輸入以下命令(在同一行):
pip install --ignore-installed --upgrade tensorflow-gpu
4.2 驗證 Anaconda 環(huán)境下 TensorFlow 的安裝
啟動 Anaconda 控制臺兴溜。
輸入以下命令以激活 Conda 中自建的 TensorFlow 環(huán)境:
activate tensorflow
- 輸入以下命令調(diào)用 Python:
python
- 在 Python 交互式 shell 中輸入以下幾行簡短的程序代碼:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
- 如果系統(tǒng)輸出以下內(nèi)容之一,就說明您可以開始編寫 TensorFlow 程序了:
Hello, TensorFlow!
b'Hello, TensorFlow!'
4.3 常見的安裝問題(官方文檔)
我們借助 Stack Overflow 來記錄 TensorFlow 安裝問題及其補救措施斋攀。下表包含了 Stack Overflow 上一些常見安裝問題解答的鏈接已卷。如果您遇到了下表中未列出的錯誤消息或其他安裝問題,請在 Stack Overflow 上進(jìn)行搜索淳蔼。如果 Stack Overflow 中沒有顯示相關(guān)錯誤消息侧蘸,請在 Stack Overflow 上提一個新的問題,并指定 tensorflow 標(biāo)簽鹉梨。
錯誤代碼 | Stack Overflow 鏈接錯誤消息 |
---|---|
41007279 | [...\stream_executor\dso_loader.cc] Couldn't open CUDA library nvcuda.dll |
41007279 | [...\stream_executor\cuda\cuda_dnn.cc] Unable to load cuDNN DSO |
42006320 | ImportError: Traceback (most recent call last):File "...\tensorflow\core\framework\graph_pb2.py", line 6, infrom google.protobuf import descriptor as _descriptor ImportError: cannot import name 'descriptor' |
42011070 | No module named "pywrap_tensorflow" |
42217532 | OpKernel ('op: "BestSplits" device_type: "CPU"') for unknown op: BestSplits |
43134753 | The TensorFlow library wasn't compiled to use SSE instructions |
38896424 | Could not find a version that satisfies the requirement tensorflow |
五讳癌、安裝 Spyder IDE
想必用過 MATLAB 的人對于 Spyder IDE 第一感覺就是:哇塞!好熟悉按嬖怼晌坤!下圖就是該編譯環(huán)境的整體界面:
5.1 在 Anaconda 中自建的環(huán)境下安裝 Spyder:
- 啟動 Anaconda 控制臺。
- 輸入以下命令以激活 Conda 中自建的 TensorFlow 環(huán)境:
activate tensorflow
- 輸入以下命令安裝 Spyder 以及相關(guān)的依賴包旦袋,在彈出提示語句后輸入
y
按回車等待安裝完成:
conda install spyder
5.2 檢測安裝是否成功
- 在上述環(huán)境下輸入
spyder
骤菠;或者在安裝成功后,在開始菜單的Anaconda3 (64bit)
文件夾下會出現(xiàn)名為Spyder (tensorflow)
的快捷方式疤孕,其作用等同于使用 Anaconda 控制臺輸入命令啟動 Spyder IDE商乎。 - 打開 Spyder IDE,在右側(cè)控制臺中輸入以下代碼祭阀,沒有出現(xiàn)報錯則說明安裝成功
import tensorflow
至此鹉戚,基于 CUDA? 工具包 9.0 和 cuDNN v7.1 加速的 TensorFlow 1.8 已經(jīng)安裝完成,接下來基于上述環(huán)境(當(dāng)然也可以重新創(chuàng)建一個新的環(huán)境)安裝 Keras 深度學(xué)習(xí)框架以及選擇安裝 Jupyter IDE专控。
六抹凳、安裝 Keras(選擇安裝)
如果你不想學(xué)習(xí)復(fù)雜的 TensorFlow 代碼,個人感覺使用 Keras 能夠使你更加的專注于網(wǎng)絡(luò)的優(yōu)化與構(gòu)建踩官。其學(xué)習(xí)成本相比于 TensorFlow 非常的低却桶,建議初學(xué)者優(yōu)先使用。
6.1 在 TensorFlow 環(huán)境中安裝 Keras
- 啟動 Anaconda 控制臺蔗牡。
- 輸入以下命令以激活 Conda 中之前自建的 TensorFlow 環(huán)境(可以自己重新新建的一個新的環(huán)境颖系,不過該環(huán)境必須重新按照之前所有步驟進(jìn)行操作):
activate tensorflow
- 輸入以下命令安裝 Keras 以及相關(guān)的依賴包,在彈出提示語句后輸入
y
按回車等待安裝完成:
pip install keras
6.2 檢驗 Keras 的安裝
- 等待安裝完成后進(jìn)入 Spyder IDE辩越,在右側(cè)控制臺中輸入以下代碼嘁扼,如果出現(xiàn)以下提示說明安裝基本成功。
import keras
using tensorflow backend
- 重新啟動 Anaconda 控制臺黔攒。
- 輸入以下命令以激活 Conda 中之前自建的 TensorFlow 環(huán)境:
activate tensorflow
- 輸入以下命令安裝 git 以及相關(guān)的依賴包趁啸,在彈出提示語句后輸入
y
按回車等待安裝完成:
conda install git
- 接著强缘,在 Anaconda 控制臺中輸入以下代碼下載 Keras 開發(fā)包,并進(jìn)行 mnist 數(shù)據(jù)集測試
conda install git
git clone https://github.com/fchollet/keras.git
cd keras/examples/
python mnist_mlp.py
- 如果出現(xiàn)了如下一堆界面不傅,并且沒有報錯旅掂,則說明 Keras 已經(jīng)安裝成功,你已經(jīng)可以進(jìn)行機器學(xué)習(xí)的創(chuàng)造之旅了访娶!
不知道最后我們的結(jié)果是不是一樣的 ->_->
Test loss: 0.10368652955392559
Test accuracy: 0.9849
七商虐、安裝 Jupyter IDE(選擇安裝)
如果你不是很喜歡 Spyder 的界面風(fēng)格,需要一個更加現(xiàn)代化的編程環(huán)境崖疤,那么這款基于瀏覽器界面的編程環(huán)境將非常的適合于你秘车!
哈哈哈!這個當(dāng)然是假的啦劫哼!下面這個才是真正的圖形界面叮趴,不過上面的那個窗口千萬不要隨手關(guān)閉!权烧!
7.1 在 TensorFlow 環(huán)境中安裝 Jupyter IDE
- 啟動 Anaconda 控制臺眯亦。
- 輸入以下命令以激活 Conda 中之前自建的 TensorFlow 環(huán)境(可以自己重新新建的一個新的環(huán)境,不過該環(huán)境必須重新按照之前所有步驟進(jìn)行操作):
activate tensorflow
- 輸入以下命令安裝 Jupyter IDE 以及相關(guān)的依賴包豪嚎,在彈出提示語句后輸入
y
按回車等待安裝完成:
conda install jupyter
7.2 檢測安裝是否成功
- 在上述環(huán)境下輸入
jupyter
搔驼;或者在安裝成功后谈火,在開始菜單的Anaconda3 (64bit)
文件夾下會出現(xiàn)名為Jupyter (tensorflow)
的快捷方式侈询,其作用等同于使用 Anaconda 控制臺輸入命令啟動 Jupyter IDE。 - 打開 Jupyter IDE糯耍,選擇相應(yīng)路徑扔字,在左上角選擇
New
新建一個Python 3
的Notebook
,在輸入中輸入以下代碼温技,點擊run
沒有出現(xiàn)報錯則說明安裝成功
import tensorflow
至此革为,你以為本教程就要結(jié)束了么?
Too young, too naive!
八舵鳞、給新手的常用指令(更新中...)
# 用來下載 GitHub 上的打包資源
conda install git
# 用來下載調(diào)用可視化圖形的包
conda install matplotlib
# 使用 Pip 安裝
pip install
# 使用 Conda 安裝
conda install
# 使用 Conda 更新所有包震檩,能夠解決90%的問題
conda upgrade --all
# 使用 Conda 創(chuàng)建新的環(huán)境 &name 為自定義環(huán)境名
conda create -n &name pip python
# 激活 Conda 中搭建的以 &name 為名稱的環(huán)境
activate tensorflow
# 退出 Conda 中的當(dāng)前環(huán)境
deactivate