當前位置:
首頁 > 新聞 > 新手指南:如何在AWS GPU上運行Jupyter?

新手指南:如何在AWS GPU上運行Jupyter?

選自Keras Blog

作者:Francois Chollet

機器之心編譯

參與:王宇欣、黃小天


本文將指導你逐步在 AWS GPU 實例上運行深度學習 Jupyter notebook,並可在你的瀏覽器中從任何地方對其編輯。如果你的本地機器上沒有 GPU,這將會是一個研究深度學習的理想設置。

新手指南:如何在AWS GPU上運行Jupyter?

什麼是 Jupyter noterbook?為什麼要在 AWS GPU 上運行 Jupyter notebook?

Jupyter notebook 是一個網頁應用程序,允許你以交互的方式編寫並注釋 Python 代碼。這是一種做試驗,做研究,並分享工作內容的有效方法。了解什麼是 notebook 請點擊這裡(鏈接:http://suo.im/4Em4IR)。

許多深度學習應用的計算非常密集,且在筆記本的 CPU 內核上運行通常需要耗費幾個小時甚至是幾天。如果把一個現代的 CPU 換成 GPU,訓練和推理的速度可提升 5 到 10 倍。但是,你可能無法在本地計算機上安裝 GPU。在 AWS 運行 Jupyter notebook 可以給你在本地計算機上運行時的相同體驗,同時允許你利用 AWS 上的一個或多個 GPU。如果你只是偶爾使用深度學習,相比投資專有的 GPU,Jupyter notebook 更為有利,你只需支付所用的東西。

為什麼我不想在 AWS 上使用 Jupyter 進行深度學習?

AWS GPU 實例的價格可以迅速變貴。我們建議的使用價格是每小時 0.9 美元。這個價格偶爾使用還可以接受,但是如果你每天都要進行幾個小時的實驗,那麼你最好搭建配備 Titan X 或者 GTX 1080 Ti 的專屬深度學習機。

開始之前注意:

  • 你需要一個激活的 AWS 賬戶

  • 如果你對 AWS EC2 有所了解會有幫助,但並不必須

搭建需要花費 5 到 10 分鐘的時間。

分步指南

1 - 導航至 EC2 控制面板,並點擊「啟動實例」鏈接。

新手指南:如何在AWS GPU上運行Jupyter?

2 -選擇官方 AWS 深度學習 Ubuntu AMI

選擇「AWS 市場」並在搜索框中搜索「深度學習」。

新手指南:如何在AWS GPU上運行Jupyter?

向下滾動,直到找到名為「深度學習 AMI Ubuntu 版本」的 AMI(如下圖),並選擇它。

新手指南:如何在AWS GPU上運行Jupyter?

3 -選擇 p2.xlarge 實例

該實例類型提供對單個 GPU 的訪問,並且每小時的使用成本為 0.9 美元(截至 2017 年 3 月)。點擊「配置實例細節」:

新手指南:如何在AWS GPU上運行Jupyter?

4 -配置實例細節

你可以為「配置實例」、「添加存儲」和 「添加標籤」等步驟保留默認設置。但是我們將自定義步驟「配置安全組」。

創建一個自定義 TCP 規則以允許 8888 埠。

在你當前的公共 IP(例如你的筆記本電腦的 IP),或者在前者不可能的情況下,對於任意 IP,該規則都被允許。請注意,如果你允許任意 IP 均可接入埠 8888,則理論上任何人都可以收聽你的實例上的那個埠(這是我們將運行 IPython notebook 的地方)。我們將為筆記本電腦添加密碼保護,以便降低任意人員都可以對其進行修改的風險,但這也許是較弱的保護。如果可能的話,你應該考慮限制特定 IP 的訪問。但是,如果你的 IP 地址不斷更改,這不太實際。如果你打算對任意 IP 開放接入端,請記住不要在實例上留下任何敏感數據。

新手指南:如何在AWS GPU上運行Jupyter?

在啟動過程結束時,系統將會詢問你是否要創建新的連接密鑰,或者是否重複使用現有的密鑰。如果你之前從未使用過 EC2, 只需創建新的密鑰並下載即可。

5 - 啟動你的實例並連接到它

為了連接實例,在 EC2 控制面板上選擇並點擊「連接」按鈕,遵循提供的說明,例如:

新手指南:如何在AWS GPU上運行Jupyter?

注意,實例完全啟動之前可能需要幾分鐘。如果開始時不能連接,請等待並重試。

6 - 設置 SSL 證書

通過 ssh 登錄實例後,在實例的根目錄下創建一個 ssl 目錄,然後對其進行 cd(並非必要,但更乾淨)。

mkdir ssl

使用 OPenSSL 創建新的 SSL 證書:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout "cert.key" -out "cert.pem" -batch

完成後,你已在當前的 sll 目錄中創建了兩個文件:cert.key 和 cert.pem.

6 - 配置 Jupyter

在我們開始使用 Jupyte 之前,我們需要調整其默認配置。首先,我需要生成一個新的 Jupyter 配置文件(仍然在遠程實例上):

jupyter notebook --generate-config

或者,你可以為自己的 notebook 生成 Jupyter 密碼。由於你的實例配置可能為從任何 Ip 訪問(取決於你在配置安全組時所做的選擇),最好通過密碼限制對 Jupyter 的訪問。要生成密碼,請打開 IPython shell(ipython 命令)並運行:

from IPython.lib import

passwd() 命令將要求你輸入並驗證密碼,完成後將顯示密碼哈希(hash)。複製哈希,我們稍後會用到。它看起來像:「sha1:b592a9cf2ec6:b99edb2fd3d0727e336185a0b0eab561aa533a43」(這是「密碼」哈希,並非是你應該使用的密碼)。

接下來,使用 Vi(或者用你最喜歡的可用文本編輯器)編輯配置文件:

vi ~/.jupyter/jupyter_notebook_config.py

這是一個 Python 文件,其中所有的行都被注釋掉。

你需要插入以下 Python 代碼行(比如,在文件的開頭)

c = get_config() # get the config object

如果,你以前沒有使用過 Vi,請記住,你需要按 i 開始插入內容;完成後,你可以點擊 esc 然後是 :wq 最終 enter 退出 Vi,同時保存更改(:wq 代表寫入-退出)

7 - 更新 Keras

你馬上可以開始使用 Jupyte 了。但首先,通過運行(仍然在遠程實例上)以確保 Keras 是最新的:

sudo pip install keras --upgrade --no-deps

你所使用的 AMI 由亞馬遜負責日常更新,但其可能沒有使用每個包的最新版本。

8 - 設置本地埠轉發

在本地機器上的一個 Shell(不是遠程實例中)中,開始將你的本地埠 443(HTTPS 埠)轉發到遠程實例的埠 8888。這是通過句法(syntax)完成的:

sudo ssh -i awsKeys.pem -L local_port:local_machine:remote_port remote_machine

在我們的例子中為:

sudo ssh -i awsKeys.pem -L 443:127.0.0.1:8888 ubuntu@ec2-54-147-126-214.compute-1.amazonaws.com

9 - 從你的本地瀏覽器中開始使用 Jupyter

首先,在遠程實例中,創建保存你的 notebook 的文件夾:

mkdir notebooks

在遠程實例上,通過在你創建的文件夾中運行此命令來啟動 Jupyter Notebook:

ipython notebook

然後,在本地瀏覽器中,導航至我們發送到遠程 notebook 進程的本地地址 https://127.0.0.1。確保你在地址中使用 HTTPS,否則你將收到 SSL 錯誤。

你將看到一個安全警告:

新手指南:如何在AWS GPU上運行Jupyter?

該警告只是因為我們生成的 SSL 證書沒有被任何受權威機構驗證(顯然,我們剛剛生成了我們自己的證書)。點擊「advanced」,繼續瀏覽,這很安全。

然後系統會提示你輸入 Jupyter 密碼。然後,你會進入 Jupyter 控制面板。

新手指南:如何在AWS GPU上運行Jupyter?

點擊「新建 - >Notebook」開始。你可以使用你選擇的 Python 版本。

新手指南:如何在AWS GPU上運行Jupyter?

好了!

新手指南:如何在AWS GPU上運行Jupyter?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

語音合成到了跳變點?深度神經網路變革TTS最新研究匯總
想了解概率圖模型?你要先理解圖論的基本定義與形式
騰訊雲機器學習平台技術負責人黃明,詳解DI-X 深度學習平台
谷歌全端到端語音合成系統Tacotron:直接從字元合成語音
資源|價值迭代網路的PyTorch實現與Visdom可視化

TAG:機器之心 |

您可能感興趣

UI 設計師未來的全新工作方式?React-SketchApp 新手上路
G-DRAGON 演繹 CHANEL 最新手袋 Gabrielle 宣傳影片
Google推出ARCore 對抗蘋果ARkit及新手機
Oculus市場份額逼近HTC,微軟不知道啥時候對應Steam,華碩新手機被谷歌ARCore坑了?
新手入門指南!一篇文章教你使用 Garmin Connect Mobile
Qlik Sense Cloud新手指南系列視頻(七)
Vintage 新手入門指南 | Opinion
Willow Smith 漫遊東京演繹 Chanel 最新手袋 Gabrielle
21世紀的Comic Sans:全新手寫字體集INKWELL非正式但精緻
Scuf兩款全新手柄Infinity與Impact上手 來看看PS4精英手柄長啥樣!
Android之父Andy Rubin或在月底發布新手機
Nature Methods:便攜、低成本的單細胞RNA測序新手段
《FF XV: Pocket Edition》最新手游版本預告登場
蘋果新手機三連發,iPhone8,iPhone8plus,iPhoneX史上最貴
Android 之父 Andy Rubin 的新手機將在一周內出貨
護膚新手區# The Face Shop
角川書社將與Klab合作新手游:《Project Parallel》正式發表
JavaScript 新手的踩坑日記
蘋果Apple Watch3曝光 預計9月與iPhone新手機齊發