AI應用開發實戰 - 從零開始配置環境
與本篇配套的視頻教程請訪問:https://www.bilibili.com/video/av24421492/
零、前提條件
- 一臺能聯網的電腦,使用win10 64位操作系統
- 請確保鼠標、鍵盤、顯示器都是好的
建議和反饋,請發送到
https://github.com/Microsoft/vs-tools-for-ai/issues
聯繫我們
[email protected]
一、Windows下開發環境搭建
本教材主要參考瞭如下資源:
官方github教程:https://github.com/microsoft/vs-tools-for-ai
鬥魚tv教程:https://v.douyu.com/show/V6Aw87OBmXZvYGkg
本教程分爲五步:
- 安裝VS:難度一星
- 安裝python:難度一星
- 安裝CUDA和cuDNN:這是本教程最繁瑣
的一步,這一步直接拉高本教程的平均難度。
- 配置機器學習環境:這是本教程最簡單的一步,爲了方便用戶配置環境,微軟提供了一鍵安裝工具!沒錯,一鍵安裝工具!業界良心阿!
- 安裝VS Tools For AI插件:難度一星
note:本教程對各個軟件需要使用的版本都做出了明確說明,請安裝指定的版本
請放輕鬆,接下來的傻瓜教程不需要動腦子,你甚至可以打開手機邊刷微博邊配置環境
0.安裝Git
訪問 https://git-scm.com/download/win
選擇64-bit Git for Windows Setup
下載
雙擊.exe開始安裝
選擇好自己的安裝路徑,一路next,直到Adjusting your PATH environment
請選擇Use Git from the Windows Command Prompt
這一步就已經將Git添加到環境變量中了,然後就可以直接在命令行裏使用Git啦。
然後繼續next,直到安裝結束
1.安裝VS
訪問 https://www.visualstudio.com/zh-hans/products/
在產品
中點擊Visual Studio 2017
選擇Community
版本下載
打開Visual Studio Installer進行如下的配置:
僅選擇.NET桌面開發
與Python
開發即可
僅選擇.NET桌面開發
與Python
開發即可
僅選擇.NET桌面開發
與Python
開發即可
note:請自行決定Visual Studio的安裝路徑
等待數分鐘,時長視網絡狀況而定,這個時候你可以去泡一杯茶,或者聽一首歌,如果你的網絡不是很好,那你可以去看集美劇或者別的什麼,等待安裝結束。
note:坐 和 放寬
2.安裝python
訪問 https://www.python.org/downloads/
選擇版本3.5.4
或3.6.5
,Windows x86-64 executable installer
下載。
打開安裝包,在安裝前,請選擇Add Python 3.X to PATH
,隨後按照默認選項安裝即可。
點選後,程序將自動將Python加入環境變量,這樣避免在安裝後手動配置環境變量。
安裝結束後,請進行如下操作驗證python是否安裝成功
1.同時按下 win 與 R,在彈出的輸入框裏輸入cmd
2.在彈出的窗口中輸入 python
3.輸入exit()退出
4.輸入python -m pip install -U pip以更新pip到最新版本
note: pip是一個用來管理python包的工具
自此,你已經完成了python的安裝,在朝着AI技術大牛的路上又前進了一步!
note:請伸出大拇指給自己一個贊?
3.安裝CUDA與cuDNN
如果你的電腦裝有Nvidia的顯卡,請進行這一步配置,否則請跳過。
首先通過操作系統更新,升級顯卡驅動到最新版。
3.1 安裝CUDA
打開 https://developer.nvidia.com/cuda-toolkit-archive
選擇CUDA 9.0 進行安裝。
點擊後,選擇如下的配置:
note:請選擇local版本下載,一旦失敗還可以重新再來;如果使用network版本,一旦失敗,需要重新下載1.4GB的安裝包
打開安裝包,進行安裝,請自行配置CUDA的安裝路徑,並手動將CUDA庫添加至PATH環境變量中。
note:在Windows中,CUDA的默認安裝路徑是:
“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin”
3.2 安裝cuDNN
note:打起精神!這是操作最複雜的一步!
訪問 https://developer.nvidia.com/rdp/cudnn-archive 找到我們需要的cuDNN版本:
cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
cuDNN v7.0.5 Library for Windows 10
點擊鏈接,等待着你的並不是文件下載,而是:
↑這就是本教程裏最麻煩的一步:在下載cuDNN之前需要註冊Nvidia會員並驗證郵箱。不過還好可以微信登錄,省掉一些步驟。
一番令人窒息的操作之後,我們終於得到了cuDNN,我們把文件解壓,取出這個路徑的cudnn64_7.dll
,複製到CUDA的bin目錄下即可。默認的地址是:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
note:到這裏,我們已經完成了本教程最複雜的一步了
4.安裝機器學習的軟件及依賴
這一步雖然是整個教程最簡單的一步,甚至比把大象關進冰箱更簡單。
你只需要:
win + R ,打開cmd,在命令行中輸入:
cd c:\ //選擇一個你喜歡的路徑
md AI //在這裏創建一個AI目錄
cd AI //打開這個目錄
//克隆倉庫到本地
git clone https://github.com/Microsoft/samples-for-ai.git
cd samples-for-ai //打開這個目錄
cd installer //還有這個目錄
python.exe install.py //開始安裝
然後刷會微博,等待安裝結束即可。
成功之後是這樣的:
或者你覺得自己不怕麻煩,那麼請訪問:https://github.com/Microsoft/vs-tools-for-ai/blob/master/docs/zh-hans/docs/prepare-localmachine.md
根據教程按步安裝,相信我,你會回來選擇一鍵安裝的。
note:就差一步啦!成功就在眼前!
5.安裝tools for ai插件
打開Visual Studio,選擇工具->擴展和更新->選擇“聯機”->搜索“AI”
就像這樣:
等待下載完成之後,關閉Visual Studio,沒錯,關閉Visual Studio,系統將自動安裝AI插件。
安裝完畢後再次打開Visual Studio,你將在界面上看到這樣的內容:
那麼恭喜你!安裝成功!
note:千里之行始於足下,恭喜你成功地完成了環境的搭建,接下來就已經可以使用Visual Studio Tools For AI進行開發了?
二、離線模型的訓練
6.14日更新
GitHub上的samples-for-ai
進行了一定的更新,目前MNIST文件夾下只有一個mnist.py
文件,
下述步驟中,請使用最新的mnist.py文件
在進行完環境搭建後,我們馬上就可以開始訓練第一個模型了,我們選擇tensorflow下的MNIST作爲第一個例子。
MNIST的介紹請參考這個鏈接 https://www.tensorflow.org/versions/r1.1/get_started/mnist/beginners
首先我們打開這個路徑:C:\AI\samples-for-ai\examples\tensorflow
,如果你在別的目錄下克隆了目錄,那麼請打開你對應的目錄。然後雙擊TensorflowExamples.sln
就像這樣:
note:如果存在多個Python環境,你需要爲Visual Studio的AI項目設置默認的Python環境。
例如,手動安裝的Python 3.5與Visual Studio 2017 Python開發負載自動安裝了64位的Python 3.6
如果要爲Visual Studio設置全局的默認Python環境,請打開工具
->Python
-> Python環境
。然後,選擇自己需要的Python版本,點擊將此作爲新項目的默認環境
。
然後在解決方案資源管理器
中,選擇MNIST
,單擊右鍵,選擇設爲啓動項目
然後選擇MNIST
中的mnist.py
,單擊右鍵,選擇在不調試的情況下啓動
然後程序就開始運行了,就像這樣:
等待一段時間之後,模型就訓練好了!這個時候打開MNIST所在的文件夾,MNIST下是否多了三個文件夾?分別是input
和output
還有export
,這三個文件夾分別存儲了訓練模型的輸入文件、訓練時的檢查點文件,還有最終導出的模型文件
檢查點文件:
模型文件:
可能存在的問題
GPU ran out of memory
方法一:
修改convolutional.py
第45行或第47行的BATCH_SIZE
或EVAL_BATCH_SIZE
爲一個更小的數字。具體修改哪一個,需要視你在程序運行的哪個部分得到了ERROR決定。
方法二:
不使用GPU訓練,在項目MNIST上單擊右鍵,選擇屬性(R)
修改環境變量爲CUDA_VISIBLE_DEVICES=" "