更多深度文章, 請關注雲計算頻道:https://yq.aliyun.com/cloud
伴隨著今日阿裡雲機器學習PAI在雲棲大會的重磅發佈, 快來感受下人工智慧的魅力。
一、背景
隨著互聯網的發展, 產生了大量的圖片以及語音資料, 如何對這部分非結構化資料行之有效的利用起來, 一直是困擾資料採擷工程師的一到難題。 首先, 解決非結構化資料常常要使用深度學習演算法, 上手門檻高。 其次, 對於這部分資料的處理, 往往需要依賴GPU計算引擎, 計算資源代價大。 本文將介紹一種利用深度學習實現的圖片識別案例, 這種功能可以服用到圖片的檢黃、人臉識別、物體檢測等各個領域。
下面嘗試通過阿裡雲機器學習平臺產品, 利用深度學習框架Tensorflow, 快速的搭架圖像識別的預測模型, 整個流程只需要半小時, 就可以實現對下面這幅圖片的識別, 系統會返回結果“鳥”:
二、資料集介紹
使用CIFAR-10資料集, 這份資料是一份對包含6萬張圖元為32*32的彩色圖片,
資料來源在使用過程中被拆分成兩個部分, 其中5萬張用於訓練, 1萬張用於測試。 其中5萬張訓練資料又被拆分成5個data_batch, 1萬張測試資料組成test_batch。
三、資料探索流程
下面我們一步一步講解下如何將實驗在阿裡雲機器學習平臺跑通, 首先需要開通阿裡雲機器學習產品的GPU使用權限, 並且開通OSS, 用於存儲資料。
機器學習:https://data.aliyun.com/product/learn?spm=a21gt.99266.416540.112.IOG7OU
OSS:https://www.aliyun.com/product/oss?spm=a2c0j.103967.416540.50.KkZyBu
1.資料來源準備
第一步, 進入OSS物件存儲, 將本案例使用的相關資料和代碼放到OSS的bucket路徑下。
每個資料夾的作用如下:
check_point:用來存放實驗生成的模型
predict_code:用來存放訓練資料, 也就是cifar_pai.py
train_code:用來存放cifar_predict_pai.py
2.配置OSS訪問授權
現在我們已經把資料和訓練需要的代碼放入OSS,
3.模型訓練
從左邊的組件框中拖拽“讀OSS Bucket”以及“Tensorflow”元件連結, 並且在“Tensorflow”的配置項中進行相關設置。
Python代碼檔:OSS中的cifar_pai.py
數據原始目錄:OSS中的cifar-10-batches-py資料夾
輸出目錄:OSS中的check_point資料夾
點擊運行,實驗開始訓練,可以針對底層的GPU資源靈活調節,除了介面端的設置,需要在代碼中也有相應的支持,代碼編寫符合Tensorflow的多卡規範。
4.模型訓練代碼解析
這裡針對cifar_pai.py檔中的關鍵代碼講解:
(1)構建CNN圖片訓練模型
network = input_data(shape=[None, 32, 32, 3],(2)訓練生成模型model.tfl
model = tflearn.DNN(network, tensorboard_verbose=0)5.查看訓練過程中的日誌
訓練過程中,右鍵“Tensorflow”元件,點擊查看日誌。
點擊打開logview連接,按照如下鏈路操作,打開ODPS Tasks下面的Algo Task,按兩下Tensorflow Task,點擊StdOut,可以看到模型訓練的日誌被即時的列印出來:
隨著實驗的進行,會不斷打出日誌出來,對於關鍵的資訊也可以利用print函數在代碼中列印,結果會顯示在這裡。在本案例中,可以通過acc查看模型訓練的準確度。
5.結果預測
再拖拽一個“Tensorflow”元件用於預測,
Python代碼檔:OSS中的cifar_predict_pai.py
數據原始目錄:OSS中的cifar-10-batches-py資料夾,用來讀取bird_mount_bluebird.jpg檔
輸出目錄:讀取OSS中的check_point資料夾下模型訓練生成的model.tfl模型檔
預測的圖片是存儲在checkpoint資料夾下的圖:
結果見日誌:
6.預測代碼資料
部分預測代碼解析:
predict_pic = os.path.join(FLAGS.buckets, "bird_bullocks_oriole.jpg")首先讀入圖片“bird_bullocks_oriole.jpg”,將圖片調整為圖元32*32的大小,然後帶入model.predict預測函數評分,最終會返回這張圖片對應的十種分類['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck']的權重,選擇權重最高的一項作為預測結果返回。
四、其它
免費體驗:阿裡雲數加機器學習平臺
往期文章:
【玩轉資料數列一】人口普查統計案例
【玩轉資料數列二】機器學習應用沒那麼難,這次教你玩心臟病預測
【玩轉資料數列三】利用圖演算法實現金融行業風控
【玩轉資料數列四】聽說啤酒和尿布很配?本期教你用協同過濾做推薦
【玩轉資料數列五】農業貸款發放預測
【玩轉資料數列六】文本分析演算法實現新聞自動分類
【玩轉資料數列七】有娃的注意了,機器學習教您如何提高孩子學習成績
【玩轉資料數列八】機器學習演算法的離線調度實現-廣告CTR預測
【玩轉資料數列九】機器學習為您解密霧霾形成原因
上述所有連結,在這都可以看到:https://yq.aliyun.com/articles/72841
輸出目錄:OSS中的check_point資料夾
點擊運行,實驗開始訓練,可以針對底層的GPU資源靈活調節,除了介面端的設置,需要在代碼中也有相應的支持,代碼編寫符合Tensorflow的多卡規範。
4.模型訓練代碼解析
這裡針對cifar_pai.py檔中的關鍵代碼講解:
(1)構建CNN圖片訓練模型
network = input_data(shape=[None, 32, 32, 3],(2)訓練生成模型model.tfl
model = tflearn.DNN(network, tensorboard_verbose=0)5.查看訓練過程中的日誌
訓練過程中,右鍵“Tensorflow”元件,點擊查看日誌。
點擊打開logview連接,按照如下鏈路操作,打開ODPS Tasks下面的Algo Task,按兩下Tensorflow Task,點擊StdOut,可以看到模型訓練的日誌被即時的列印出來:
隨著實驗的進行,會不斷打出日誌出來,對於關鍵的資訊也可以利用print函數在代碼中列印,結果會顯示在這裡。在本案例中,可以通過acc查看模型訓練的準確度。
5.結果預測
再拖拽一個“Tensorflow”元件用於預測,
Python代碼檔:OSS中的cifar_predict_pai.py
數據原始目錄:OSS中的cifar-10-batches-py資料夾,用來讀取bird_mount_bluebird.jpg檔
輸出目錄:讀取OSS中的check_point資料夾下模型訓練生成的model.tfl模型檔
預測的圖片是存儲在checkpoint資料夾下的圖:
結果見日誌:
6.預測代碼資料
部分預測代碼解析:
predict_pic = os.path.join(FLAGS.buckets, "bird_bullocks_oriole.jpg")首先讀入圖片“bird_bullocks_oriole.jpg”,將圖片調整為圖元32*32的大小,然後帶入model.predict預測函數評分,最終會返回這張圖片對應的十種分類['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck']的權重,選擇權重最高的一項作為預測結果返回。
四、其它
免費體驗:阿裡雲數加機器學習平臺
往期文章:
【玩轉資料數列一】人口普查統計案例
【玩轉資料數列二】機器學習應用沒那麼難,這次教你玩心臟病預測
【玩轉資料數列三】利用圖演算法實現金融行業風控
【玩轉資料數列四】聽說啤酒和尿布很配?本期教你用協同過濾做推薦
【玩轉資料數列五】農業貸款發放預測
【玩轉資料數列六】文本分析演算法實現新聞自動分類
【玩轉資料數列七】有娃的注意了,機器學習教您如何提高孩子學習成績
【玩轉資料數列八】機器學習演算法的離線調度實現-廣告CTR預測
【玩轉資料數列九】機器學習為您解密霧霾形成原因
上述所有連結,在這都可以看到:https://yq.aliyun.com/articles/72841