作者|Rahul Agarwal
編譯|Flin
來源|towardsdatascience

每當我開始一個新的專案時,我發現自己一次又一次地創建一個深度學習機器,
從安裝Anaconda開始,最后為Pytorch和Tensorflow創建不同的環境,這樣它們就不會相互干擾,而在這中間,你不可避免地會搞砸,從頭開始,這種情況經常發生多次,
這不僅是對時間的巨大浪費,它也是令人畝訓的,通過所有的堆疊溢位執行緒,我們經常想知道究竟出了什么問題,
那么,有沒有一種方法可以更有效地做到這一點呢?
在這個博客中,我將嘗試在EC2上以最小的努力建立一個深度學習服務器,這樣我就可以專注于更重要的事情,
本博客明確地由兩部分組成:
- 設定一個預先安裝了深度學習庫的Amazon EC2機器,
- 使用TMUX和SSH隧道設定Jupyter notebook,
別擔心,這不像聽起來那么難,只需按照步驟操作,然后單擊“下一步”,
設定Amazon EC2計算機
我假設你擁有一個AWS賬戶,并且可以訪問AWS控制臺,如果沒有,你可能需要注冊一個Amazon AWS賬戶,
- AWS控制臺:https://aws.amazon.com/console/
- 首先,我們需要轉到“Services”選項卡以訪問EC2儀表板,

- 在EC2儀表板上,你可以從創建實體開始,

- 亞馬遜向社區AMI(亞馬遜機器映像)預裝了深度學習軟體,要訪問這些AMI,你需要查看社區AMI,并在“搜索”選項卡中搜索“ Ubuntu深度學習”,你可以選擇其他任何Linux風格,但是我發現Ubuntu對于滿足我的深度學習需求最為有用,在當前設定中,我將使用深度學習AMI(Ubuntu 18.04)27.0版

-
選擇AMI后,可以選擇“實體型別”,在這里,你可以指定系統中所需的CPU,記憶體和GPU的數量,亞馬遜提供了許多根據個人需求選擇的選項,你可以使用“過濾依據”過濾器過濾GPU實體,
在本教程中,我使用了p2.xlarge實體,該實體為NVIDIA K80 GPU提供了2,496個并行處理內核和12GiB的GPU記憶體,要了解不同的實體型別,你可以查看下方鏈接中的檔案,并查看價格,
- 查看檔案:https://aws.amazon.com/ec2/instance-types/
- 查看價格:https://aws.amazon.com/emr/pricing/

- 你可以在第4步中更改連接到機器的存盤,如果你不預先添加存盤,也可以,因為以后也可以這樣做,我將存盤空間從90 GB更改為500 GB,因為大多數深度學習需求都需要適當的存盤空間,

- 僅此而已,你可以在進入最終審閱實體設定螢屏之后啟動實體,單擊啟動后,你將看到此螢屏,只需在“Key pair name”中輸入任何密鑰名稱,然后單擊“Download Key Pair”即可,你的密鑰將按照你提供的名稱下載到計算機上,對我來說,它被保存為“aws_key.pem”,完成后,你可以單擊“Launch Instances”啟動實體,

請確保此密鑰對的安全,因為每當你要登錄實體時都需要這樣做,
- 現在,你可以單擊下一頁上的“View Instances”以查看你的實體,這是你的實體的樣子:

- 要連接到你的實體,只需在本地計算機上打開一個終端視窗,然后瀏覽到保存密鑰對檔案并修改一些權限的檔案夾,
chmod 400 aws_key.pem
完成此操作后,你將可以通過SSH連接到你的實體,SSH命令的格式為:
ssh -i“ aws_key.pem” ubuntu @ <你的PublicDNS(IPv4)>
對我來說,命令是:
ssh -i“ aws_key.pem” [email protected]

另外,請記住,一旦關閉實體,公用DNS可能會更改,
- 你已經準備好機器并準備就緒,本機包含不同的環境,這些環境具有你可能需要的各種庫,這臺特定的機器具有MXNet,Tensorflow和Pytorch,以及不同版本的python,最好的事情是,我們已經預先安裝了所有這些功能,因此開箱即用,

設定Jupyter Notebook
但是,仍然需要使用一些東西才能充分使用計算機,其中之一就是Jupyter Notebook,要在計算機上設定Jupyter Notebook,我建議使用TMUX和隧道,讓我們逐步設定Jupyter Notebook,
- 使用TMUX運行Jupyter Notebook
我們將首先使用TMUX在實體上運行Jupyter Notebook,我們主要使用它,以便即使終端連接丟失,我們的筆記本電腦仍然可以運行,
為此,你將需要使用以下命令創建一個新的TMUX會話:
tmux new -s StreamSession
完成后,你將看到一個新螢屏,底部帶有綠色邊框,你可以使用jupyter notebook命令在此計算機上啟動Jupyter Notebook ,你將看到類似以下內容:

復制登錄URL將是有益的,這樣以后以后嘗試登錄到jupyter notebook時,我們將能夠獲取令牌,就我而言,它是:
http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872
下一步是分離TMUX會話,以便它在后臺繼續運行,即使你離開ssh shell,要做到這一點,只需按Ctrl+B,然后按D(按D時不要按Ctrl),你將回傳到初始螢屏,顯示你已從TMUX會話中分離的訊息,

如果需要,可以使用以下方法重新連接到會話:
tmux attach -t StreamSession
- SSH隧道訪問本地瀏覽器上的notebook
第二步是進入Amazon實體,以便在本地瀏覽器上獲取Jupyter notebook,如我們所見,Jupyter notebook實際上運行在云實體的本地主機上,我們如何訪問它?我們使用SSH隧道,不用擔心,這很簡單,只需在本地機器終端視窗上使用以下命令:
ssh -i“ aws_key.pem” -L <本地計算機埠>:localhost:8888 ubuntu @ <你的PublicDNS(IPv4)>
對于這種情況,我使用了:
ssh -i "aws_key.pem" -L 8001:localhost:8888 [email protected]
這意味著,如果我在本地計算機瀏覽器中打開localhost:8001,則可以使用Jupyter Notebook,我當然可以,現在,我們只需輸入在先前的步驟之一中已經保存的令牌即可訪問notebook,對我來說令牌是5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872
- 令牌: http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872&token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

你只需使用你的令牌登錄即可,

現在,你可以通過選擇所需的任何不同環境來選擇新專案,你可以來自Tensorflow或Pythorch,也可以兩者兼得,notebook不會讓你失望的,

故障排除
重新啟動計算機后,你可能會遇到NVIDIA圖形卡的一些問題,具體來說,就我而言,該nvidia-smi命令停止作業,如果遇到此問題,解決方案是從NVIDIA 網站下載圖形驅動程式,
- NVIDIA 網站:https://www.nvidia.in/Download/index.aspx?lang=en-in

以上是我選擇的特定AMI的設定,單擊搜索后,你將可以看到下一頁:

只需通過右鍵單擊并復制鏈接地址來復制下載鏈接,并在計算機上運行以下命令,你可能需要在其中更改鏈接地址和檔案名,
# When nvidia-smi doesnt work:
wget https://www.nvidia.in/content/DriverDownload-March2009/confirmation.php?url=/tesla/410.129/NVIDIA-Linux-x86_64-410.129-diagnostic.run&lang=in&type=Tesla
sudo sh NVIDIA-Linux-x86_64-410.129-diagnostic.run --no-drm --disable-nouveau --dkms --silent --install-libglvnd
modinfo nvidia | head -7
sudo modprobe nvidia
停止實體
就是這樣,你已經掌握并啟動了深度學習機器,并且可以隨意使用它,請記住,無論何時停止作業,都應停止實體,因此,當你不在實體上作業時,無需向Amazon付費,你可以在實體頁面上通過右鍵單擊你的實體來執行此操作,請注意,當你需要再次登錄到該計算機時,你可能需要從實體頁面重新獲得公共DNS(IPv4)地址,因為它可能已更改,

結論
我一直覺得建立深度學習環境非常麻煩,
在此博客中,我們通過使用深度學習社區AMI,TMUX和Jupyter Notebook的隧道技術,在最短的時間內在EC2上設定了新的深度學習服務器,該服務器已預先安裝了你在作業中可能需要的所有深度學習庫,并且開箱即用,
那你還在等什么?只需在你自己的服務器上開始使用深度學習即可,
原文鏈接:https://towardsdatascience.com/stop-worrying-and-create-your-deep-learning-server-in-30-minutes-bb5bd956b8de
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/194811.html
標籤:其他
上一篇:使用OpenCV和Python構建自己的車輛檢測模型
下一篇:回圈神經網路
