想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

大資料文摘發表於2017-09-06

隨著我們使用的神經網路越來越複雜,我們需要更強勁的硬體。我們的個人電腦一般很難勝任這樣大的網路,但是你可以相對輕鬆地在Amazon EC2服務中租到一臺強勁的電腦,並按小時支付租金。

我用的是Keras,一個神經網路的開源python庫。由於用法十分簡單,它很適合入門深度學習。它基於Tensorflow,一個數值計算的開源庫,但是也可以使用Theano。租到的機器可以使用Jupyter Notebook透過瀏覽器來訪問。Jupyter Notebook是一個透過互動式程式碼來共享和編輯文件的web應用。

透過cuDNN,一個深度神經網路GPU加速庫,Keras可以在GPU上執行。由於並行運算的設計,這種方式會比一般的CPU要快很多。建議你看幾個CNN指標,對比最流行的神經網路在不同的GPU和CPU的執行時間。

我將向你介紹如何一步步在預置好的Amazon Machine Image (AMI)上搭建這樣一個深度學習的環境。

1) 建立賬戶

訪問 https://aws.amazon.com/ ,並建立一個AWS賬戶。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

 

然後登陸控制檯。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

你的控制皮膚應該看起來像這樣。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

 

確保你選擇的所在地區是法蘭克福,N. Virgiania或新加坡,以便之後可以使用一個預置好的Keras AMI。如果你想自己動手設定這樣的AMI,你可以按照這個指南。

2) 啟動例項

現在讓我們跳轉到EC2控制頁面。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

 

“Amazon Elastic Compute Cloud(Amazon EC2)在Amazon Web Services(AWS)雲中提供可擴充套件的計算功能。 Amazon EC2的使用消除了前期對硬體的投資要求,因此你可以更快地開發和部署應用程式。 你可以使用Amazon EC2啟動大量或幾個虛擬伺服器,配置安全性和網路以及儲存管理。 Amazon EC2允許你對硬體升級或降級,來應對需求的變化或流量的峰值,因此不太需要進行流量的預測。”。

所以換句話說,你可以在任何時候租一個伺服器來進行計算,也就是機器學習模型訓練。 現在讓我們啟動一個例項吧!

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

 

首先,你需要選擇一個已經安裝了所有必需工具的AMI(基於TensorFlow的Kreas和Jupyter Notebook)。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

選擇例項型別(你租到的計算機的質量)。 當然,你選擇的機型越好越貴。 但是你正在建立你的第一個例項,所以你肯定不想選最好的那個。選擇t2.micro就夠了,它就是一個測試例項。它可以在不掏空你的錢包的情況下,讓你體驗下環境。  :)

當你比較滿意,想要更多的計算能力時,我建議你使用一個g *型別的例項(g代表GPU後端)。比如 g2.2xlarge。 一個預設的GPU例項的定價為每小時0,772美元左右。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

這裡沒什麼意思,跳過。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

免費使用的最大容量是30 GB。此外,如果你不希望你的資料在關閉例項後消失,要取消選中“終止時刪除”核取方塊。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

繼續。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

這個步驟很重要,因為你不僅要使用ssh,還要透過瀏覽器訪問你的例項。 在埠8888上新增自定義TCP規則。僅允許從你的IP地址,8888和22(ssh)埠訪問它。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras

一切準備好了,現在啟動例項!

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


你只需要設定一個新的(或選擇一個現有的)金鑰對。透過ssh連結到你的機子時,必須要有金鑰。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


下載生成的金鑰,注意保密!這樣除你之外沒有其他人可以訪問這臺機器。

現在讓我們檢視機器的狀態。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


如你所見,例項已啟動並正在執行。 棒棒噠! 你剛剛啟動了一個AWS例項。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


3)設定Jupyter Notebook

現在讓我們使用它。 透過ssh連線。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


按照說明,更改私鑰的許可權並將示例鍵入終端(或使用PuTTY連線)。在-i引數後插入私鑰的路徑,使用'ubuntu'替換’root’。 所以命令看起來如下(如果你使用Windows,檢視如何透過PuTTY連線):

ssh -i  ‘path/to/private/key’  ubuntu@public_dns

在終端輸入下面命令開啟Notebook

sudo jupyter notebook 

你可以透過瀏覽器訪問Notebook,方法是鍵入your_public_dns:8888(8888是Jupyter預設埠)。

4)連線到你的例項

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


預設密碼是“'machinelearningisfun”(我建議你更改密碼,在Jupyter Notebook的文件中解釋瞭如何做)。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


MNIST資料集是一個著名的手寫數字集。 我準備了一個Notebook示例,載入資料集,並擬合一個示例卷積神經網路。 開啟mnist.jpynb示例並自行執行其中的cell。

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


程式碼來自Keras示例庫

當你用完後,記得終止你的例項!賬單是依據例項執行的時間來計算的。例如,如果你忘記關掉你的g2.2xlarge 例項,讓它執行了一個月,你將要為此支付$0,772*24*30 = $555,84.  :)

 

想入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras


那麼,接下來呢? 我建議你看看notMNIST資料集,其中包含來自不同字型的字母集。 你也可能對CIFAR-10感興趣: 一組彩色影像,對應10個類別,比如飛機,船隻,鳥類或貓。

 

如果你是Keras新手,你可能對這個教程感興趣。 或者,像我做的案例,檢測可能觸發密集恐懼症的圖片(強烈建議不要google相關的照片)。 我在PiotrMigdał主持的波蘭兒童基金會的研討會上學習了卷積神經網路的基礎知識(以及如何設定機器)。 其中另一位參與者的原始碼,使用VGG16進行特徵提取,可在GitHub上獲取。

相關文章