在 Windows 10 下搭建 TensorFlow (Keras) 機器學(xué)習(xí)環(huán)境

通過本教程驻呐,你將學(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)境:

  1. Windows 10(首先你要有一臺運行 Windows 10 最新版本的電腦)
  2. CUDA 9.0(不要問為什么不用最新版本的痒谴,TensorFlow 會對9.1報錯的)
  3. cuDNN 7.1(這個可以是最新版不過要對應(yīng)相應(yīng)的 CUDA 版本)
  4. MinGW(GCC編譯器套件是整,避免報錯 gpu sync failed)
  5. Anaconda 3(建議去官網(wǎng)上下載,后附下載鏈接)
  6. Spyder(可以使用其他的編譯器拭嫁,不過建議之前用過 MATLAB 優(yōu)先使用)
  7. Jupyter(另一款比較熱門的編譯器畜挨,UI 界面較為好看)
  8. TensorFlow 1.8(還記得我們這次的主角是什么嘛,P.S. 官網(wǎng)上的中文頁面竟然沒有改版本號)
  9. 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

  1. 前往 CUDA? 工具包 9.0 官網(wǎng) 并按照下圖選擇在線 (network) 或者離線 (local) 安裝包進(jìn)行下載躬存。
CUDA? 工具包 9.0 官網(wǎng)
  1. 前往 cuDNN v7.1 官網(wǎng) 并根據(jù)提示注冊會員并完成下載张惹。
cuDNN v7.1 官網(wǎng)
  1. 至此關(guān)于 NVIDIA? GPU 所需要的所有安裝文件已經(jīng)準(zhǔn)備就緒:
所需要的所有文件

1.2 安裝 CUDA? 工具包 9.0 和 cuDNN v7.1

  1. 運行cuda_9.0.176_win10.exe,并按照提示安裝岭洲,在這里需要注意:并不需要安裝完整的VS平臺宛逗,僅需要cpp編譯器即可(隨后會說明如何安裝GCC編譯器套件)

  2. 安裝過程中屏幕會有閃爍,為正扯苁#現(xiàn)象雷激,不要慌張!告私!

  3. 可以選擇安裝升級補丁屎暇,筆者沒有裝,目前還蠻好的驻粟,也不知道裝了以后會不會出事根悼!

  4. 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)行合并剩彬。

cudnn-9.0-windows10-x64-v7.1.zip 文件結(jié)構(gòu)

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(貌似需要在線安裝勤讽,好吧就是在線安裝)!

MinGW 官網(wǎng)

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)境君纫。

Anaconda 3 官網(wǎng)

2.2 安裝 Anaconda 3

運行安裝軟件Anaconda3-5.1.0-Windows-x86_64.exe驯遇,按照默認(rèn)提示進(jìn)行安裝。

3.3 測試安裝結(jié)果

  1. 安裝完成后在開始菜單下找到如下兩個程序 Anaconda Navigator(集成環(huán)境導(dǎo)航軟件)和 Anaconda Prompt(控制臺)
開始菜單中的文件
  1. 打開 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

  1. 調(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
  1. 調(diào)用以下命令以激活 Conda 中搭建的 TensorFlow 環(huán)境(調(diào)用deactivate命令以退出當(dāng)前環(huán)境)
activate tensorflow
  1. 調(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.
  1. 調(diào)用以下命令以在 conda 環(huán)境中安裝 TensorFlow枉阵。要安裝僅支持 CPU 的 TensorFlow 版本,請輸入以下命令:
pip install --ignore-installed --upgrade tensorflow
  1. 安裝 GPU 版本的 TensorFlow预茄,請輸入以下命令(在同一行):
pip install --ignore-installed --upgrade tensorflow-gpu

4.2 驗證 Anaconda 環(huán)境下 TensorFlow 的安裝

  1. 啟動 Anaconda 控制臺兴溜。

  2. 輸入以下命令以激活 Conda 中自建的 TensorFlow 環(huán)境:

activate tensorflow
  1. 輸入以下命令調(diào)用 Python:
python
  1. 在 Python 交互式 shell 中輸入以下幾行簡短的程序代碼:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
  1. 如果系統(tǒng)輸出以下內(nèi)容之一,就說明您可以開始編寫 TensorFlow 程序了:
Hello, TensorFlow!
b'Hello, TensorFlow!'
  1. 如果系統(tǒng)輸出一條錯誤消息而不是問候語,請參閱常見的安裝問題昵慌。

  2. 此外假夺,您還可以使用一個有用的腳本檢查 Windows 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)境的整體界面:

Spyder IDE

5.1 在 Anaconda 中自建的環(huán)境下安裝 Spyder:

  1. 啟動 Anaconda 控制臺。
  2. 輸入以下命令以激活 Conda 中自建的 TensorFlow 環(huán)境:
activate tensorflow
  1. 輸入以下命令安裝 Spyder 以及相關(guān)的依賴包旦袋,在彈出提示語句后輸入y按回車等待安裝完成:
conda install spyder

5.2 檢測安裝是否成功

  1. 在上述環(huán)境下輸入spyder骤菠;或者在安裝成功后,在開始菜單的Anaconda3 (64bit)文件夾下會出現(xiàn)名為Spyder (tensorflow)的快捷方式疤孕,其作用等同于使用 Anaconda 控制臺輸入命令啟動 Spyder IDE商乎。
  2. 打開 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

  1. 啟動 Anaconda 控制臺蔗牡。
  2. 輸入以下命令以激活 Conda 中之前自建的 TensorFlow 環(huán)境(可以自己重新新建的一個新的環(huán)境颖系,不過該環(huán)境必須重新按照之前所有步驟進(jìn)行操作):
activate tensorflow
  1. 輸入以下命令安裝 Keras 以及相關(guān)的依賴包,在彈出提示語句后輸入y按回車等待安裝完成:
pip install keras

6.2 檢驗 Keras 的安裝

  1. 等待安裝完成后進(jìn)入 Spyder IDE辩越,在右側(cè)控制臺中輸入以下代碼嘁扼,如果出現(xiàn)以下提示說明安裝基本成功。
import keras
using tensorflow backend
  1. 重新啟動 Anaconda 控制臺黔攒。
  2. 輸入以下命令以激活 Conda 中之前自建的 TensorFlow 環(huán)境:
activate tensorflow
  1. 輸入以下命令安裝 git 以及相關(guān)的依賴包趁啸,在彈出提示語句后輸入y按回車等待安裝完成:
conda install git
  1. 接著强缘,在 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
  1. 如果出現(xiàn)了如下一堆界面不傅,并且沒有報錯旅掂,則說明 Keras 已經(jīng)安裝成功,你已經(jīng)可以進(jìn)行機器學(xué)習(xí)的創(chuàng)造之旅了访娶!
Anaconda 控制臺

不知道最后我們的結(jié)果是不是一樣的 ->_->

Test loss: 0.10368652955392559
Test accuracy: 0.9849

七商虐、安裝 Jupyter IDE(選擇安裝)

如果你不是很喜歡 Spyder 的界面風(fēng)格,需要一個更加現(xiàn)代化的編程環(huán)境崖疤,那么這款基于瀏覽器界面的編程環(huán)境將非常的適合于你秘车!

Jupyter 圖形界面

哈哈哈!這個當(dāng)然是假的啦劫哼!下面這個才是真正的圖形界面叮趴,不過上面的那個窗口千萬不要隨手關(guān)閉!权烧!

Jupyter 真正的圖形界面

7.1 在 TensorFlow 環(huán)境中安裝 Jupyter IDE

  1. 啟動 Anaconda 控制臺眯亦。
  2. 輸入以下命令以激活 Conda 中之前自建的 TensorFlow 環(huán)境(可以自己重新新建的一個新的環(huán)境,不過該環(huán)境必須重新按照之前所有步驟進(jìn)行操作):
activate tensorflow
  1. 輸入以下命令安裝 Jupyter IDE 以及相關(guān)的依賴包豪嚎,在彈出提示語句后輸入y按回車等待安裝完成:
conda install jupyter 

7.2 檢測安裝是否成功

  1. 在上述環(huán)境下輸入jupyter搔驼;或者在安裝成功后谈火,在開始菜單的Anaconda3 (64bit)文件夾下會出現(xiàn)名為Jupyter (tensorflow)的快捷方式侈询,其作用等同于使用 Anaconda 控制臺輸入命令啟動 Jupyter IDE。
  2. 打開 Jupyter IDE糯耍,選擇相應(yīng)路徑扔字,在左上角選擇New新建一個Python 3Notebook,在輸入中輸入以下代碼温技,點擊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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蜓堕,隨后出現(xiàn)的幾起案子抛虏,更是在濱河造成了極大的恐慌,老刑警劉巖套才,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迂猴,死亡現(xiàn)場離奇詭異,居然都是意外死亡背伴,警方通過查閱死者的電腦和手機沸毁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門峰髓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人息尺,你說我怎么就攤上這事携兵。” “怎么了搂誉?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵眉孩,是天一觀的道長。 經(jīng)常有香客問我勒葱,道長浪汪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任凛虽,我火速辦了婚禮死遭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凯旋。我一直安慰自己呀潭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布至非。 她就那樣靜靜地躺著钠署,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荒椭。 梳的紋絲不亂的頭發(fā)上谐鼎,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音趣惠,去河邊找鬼狸棍。 笑死,一個胖子當(dāng)著我的面吹牛味悄,可吹牛的內(nèi)容都是我干的草戈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼侍瑟,長吁一口氣:“原來是場噩夢啊……” “哼唐片!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涨颜,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤费韭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咐低,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揽思,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年见擦,在試婚紗的時候發(fā)現(xiàn)自己被綠了钉汗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羹令。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖损痰,靈堂內(nèi)的尸體忽然破棺而出福侈,到底是詐尸還是另有隱情,我是刑警寧澤卢未,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布肪凛,位于F島的核電站,受9級特大地震影響辽社,放射性物質(zhì)發(fā)生泄漏伟墙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一滴铅、第九天 我趴在偏房一處隱蔽的房頂上張望戳葵。 院中可真熱鬧,春花似錦汉匙、人聲如沸拱烁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽戏自。三九已至,卻和暖如春伤锚,著一層夾襖步出監(jiān)牢的瞬間擅笔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工见芹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剂娄,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓玄呛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親和二。 傳聞我的和親對象是個殘疾皇子徘铝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容