本系列将利用阿裡雲容器服務的機器學習解決方案,幫助您了解和掌握tensorflow,mxnet等深度學習庫,開啟您的深度學習之旅。
第一篇: 打造深度學習的雲端實驗室
我們工作中常常會問到:“深度學習從哪裡學起?” 在讀過了大量的文章,看過了無數的教程後,許多朋友依然表示很無感。這其實很正常,因為紙上得來終覺淺麼,絕知此事要躬行。為了幫助大家快速上手這一個機器學習分支,阿裡雲容器服務機器學習解決方案提供了豐富的開源架構幫助大家實踐,其中包括tensorflow, keras和mxnet,為了友善您學習和掌握,我們會編寫一系列的文章,介紹其中的細節。
本文是這個系列中的第一篇文章,我會在基于阿裡雲容器服務的機器學習解決方案,建立一套基于tensorflow的jupyter開發環境,并在上面開發一個簡單minst應用,最後利用tensorboard觀察訓練效果。當然,你也可以在上面玩轉包括 keras和mxnet等架構,在本文中我們也介紹了如何使用mxnet的例子。
jupyter notebook 是基于網頁應用程式,你可以在上面以互動的方式編寫和注釋python代碼。這是一種做試驗,做研究,并分享工作内容的有效方法。

并且可以看到其中的資料卷。
登入到容器服務解決方案,在 <code>模型開發</code> 中點選 <code>建立</code>
這樣,就可以看到一個表單。首先通過下拉框選擇剛才建立的<code>叢集名稱</code>,點選<code>訓練架構</code> ,這時可以看到一系列深度學習架構的清單,其中包括tensorflow, keras和mxnet的不同版本, 還可以指定python2和python3的版本,這裡我選擇tensorflow的1.0.0版本。
至于gpu數量,由于建立的是一個單gpu的叢集,可以設定gpu為1. 如果你建立了cpu叢集,就隻能設定gpu為0.
這裡,還要選擇一下剛才建立資料卷,這個資料卷會映射到深度學習環境的<code>/input</code>目錄。
因為jupyter有安全設定,需要指定一下通路密碼。
最後,由于需要通過tensorboard監控訓練效果,是以需要勾選上<code>訓練監控</code>。
這裡有一個很重要的知識點,就是<code>訓練日志路徑</code>,實際上這個路徑是tensorboard讀取訓練日志的路徑。假設你在這裡指定的路徑是<code>/output/training_logs</code>,你就需要在訓練代碼裡寫下這樣的代碼
之後就可以點選<code>建立</code>了。
一旦建立成功,就跳轉到<code>應用清單</code>頁面,這時可以在看到剛剛建立的應用, 單擊應用名稱進去。
單擊 <code>路由清單</code>,就可以看到兩個連結,分别是以 <code>jupyter</code>和<code>tensorboard</code>為開頭的連結
單擊<code>jupyter</code>開頭的連結,并且輸入 jupyter 的密碼,就能進入 jupyter 環境。
首先在jupyter首頁面中,建立terminal
在terminal裡執行<code>nvidia-smi</code>,可以看到jupyter環境能使用gpu,剩下隻需要在代碼中加上gpu調用就好了
獲得訓練集與測試集資料,
檔案
内容
<a href="http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz">train-images-idx3-ubyte.gz</a>
訓練集圖檔 - 55000 張 訓練圖檔, 5000 張 驗證圖檔
<a href="http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz">train-labels-idx1-ubyte.gz</a>
訓練集圖檔對應的數字标簽
<a href="http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz">t10k-images-idx3-ubyte.gz</a>
測試集圖檔 - 10000 張 圖檔
<a href="http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz">t10k-labels-idx1-ubyte.gz</a>
測試集圖檔對應的數字标簽
同時在jupyter的用戶端也可以看到在<code>/input</code>檔案夾已經有這些檔案的清單了:
jupyter提供了上傳代碼的機制,但是如果需要使用一個項目,<code>git</code>是一個比較好的選擇。
在termnial中執行<code>git clone https://github.com/cheyang/tensorflow-examples.git</code>
再回到jupyter的首頁面,就可以看到下載下傳的<code>tensorflow-examples</code>, 跳到<code>tensorflow-examples/notebooks/4_utils</code>,選擇<code>tensorboard_basic.ipynb</code>
這樣,就可以在jupyter中開發和運作mnist代碼, 需要把tensorflow的訓練日志路徑,設定成前面指定的<code>訓練日志路徑</code>,對于本例子來說是<code>/output/training_logs</code>, 點選<code>run all</code>
由于在配置好gpu的tensorflow中,即使代碼中沒有明确指定運作裝置也會優先選擇gpu,通過檢視日志我們可以發現,mnist訓練實際上使用的是gpu資源。
回到應用的<code>路由清單</code>,點選其中<code>tensorboard</code>為開頭的連結
這樣我們就可以看到完整的訓練效果展示, 包括loss的趨勢,圖檔示例以及計算圖
除了tensorflow,我們也支援mxnet等架構,以下是mxnet的例子
在建立mxnet的開發環境後,你也可以開發并且監控基于mxnet的深度學習應用
我們可以利用阿裡雲容器服務的機器學習解決方案,輕松的搭建在雲端搭建tensorflow,mxnet和keras的環境,并且利用tensorboard追蹤訓練效果。
歡迎掃碼加入釘釘群一起讨論: