終結重複工作!教你30分鐘創建自己的深度學習機器

全文共2332字,預計學習時長11分鐘

終結重複工作!教你30分鐘創建自己的深度學習機器

圖源:unsplash

 

重複的工作總是很讓人惱火。

 

就像每當開啓一個新的項目,我都得一遍遍地創建新的深度學習機器。先是安裝Anaconda,再爲Python和Tensorflow配置不同環境以防互相干擾。進行到一半時,會不可避免地陷入一團糟,然後又重新開始,檢查所有StackOverflow線程,也不知道哪兒出了錯。這種情況常常發生。

 

再被折磨很多次後,我開始思考,有沒有更加高效的方法呢?

 

功夫不負有心人。我終於找到了在EC2上建立一個深度學習服務器最簡單的方法。只要30分鐘搞定重複工作,你就能把時間留出來去做更重要的事情啦。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

建立AmazonEC2機器

 

首先你得有一個AWS賬號,並可以登錄AWSConsole。若沒有,則需要首先申請一個AmazonAWS賬戶。

 

第一步,轉到Services選項卡訪問EC2儀表盤。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

第二步,在EC2儀表盤上,開始創建自己的實例。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

第三步,Amazon爲CommunityAMIs(Amazon Machine Image)提供預裝深度學習軟件。要訪問這些AMI,需要先訪問community AMI並在搜索標籤中搜索“Ubuntu版本深度學習”。

 

其他Linux操作系統也可以,但我認爲Ubuntu版本最符合進行深度學習的需求。這個步驟裏會用到深度學習AMI(Ubuntu 18.04),版本爲27.0。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

緊接着,一旦選定了一款AMI,接下來就是選擇實例的類型啦。這時要明確系統中所需的CPU、存儲器及GPU的數量。Amazon提供基於個人需求的多種選擇。可以用“Filter by”過濾器來篩選GPU 實例。

 

本文使用的是p2.xlaege實例,p2.xlaege實例爲 NVIDIAK80 GPU提供了2496個並行處理內核及12GiB的GPU內存。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

第五步,可以在第四步更改附加到機器上的存儲器,如果不預先添加存儲器的話也可以稍後再操作。絕大多數的深度學習都要求適當的存儲器容量,於是我把存儲器容量從90GB擴到500GB。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

第六步,完成以上步驟就可以進入實例設置的最終頁面並啓動instance。一旦點Launch,就會看到這樣一個頁面。在Key pairname中寫入密鑰名,然後點擊“Downloadkey pair”。密鑰會按提供的名稱下載到電腦上。設置的名稱是“aws_key.pem”。完成之後,可以點擊“LaunchInstances”。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

每次登錄自己的實例都會要求輸入密鑰對,所以務必保證密鑰對的安全性。

 

好啦,現在可以單擊下一頁的“Viewinstances”來查看你的實例。這就是創建的實例:

 

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

如果想要連接實例,只需打開本地計算機的終端窗口,並瀏覽保存密鑰對文件的文件夾,然後修改一些權限。

 

chmod 400 aws_key.pem

操作之後,就可以通過SSHing連接到instance。SSH 指令的形式如下:

 

ssh -i "aws_key.pem"ubuntu@<Your PublicDNS(IPv4)>

指令是這樣的:

 

ssh -i "aws_key.pem"[email protected]

終結重複工作!教你30分鐘創建自己的深度學習機器

 

還要記住一點,如果關閉了實例,Public DNS可能會改變。

 

這時機器已經準備好了。這臺機器裏包含了不同的環境,擁有各種可能所需的庫。這臺特別的機器還有擁有各種不同版本python的MXNet、Tensorflow和 Pytorch。這些已都預裝好,可以立即開始運作了。

 

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

終結重複工作!教你30分鐘創建自己的深度學習機器

創建JupyterNotebook

 

如果想要充分發揮設備的性能,還有幾樣東西必不可少。其中一項就是JupyterNotebooks。我推薦使用TMUX和tunneling在機器上創建Jupyter Notebooks。

 

1.使用TMUX來運行Jupyter Notebook

 

首先使用TMUX在實例上運行Jupyter notebook。主要採用TMUX是因爲即使終端連接丟失,Jupyter Notebook仍可以運行。因此,我們需要使用以下代碼來創建一個新的TMUX會話:

 

tmux new -s StreamSession

 

完成後,你將會看到新的界面,底部有一個綠色的邊框。接下來可以使用常規Jupyternotebook指令來創建自己的Jupyter Notebook。如下圖:

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

複製登錄的URL很有幫助,這樣之後登錄Jupyter Notebook時能夠得到一個令牌。令牌是這樣的:http://localhost:8888/?token=
5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

 

下一步是分離TMUX 會話,這樣一來即使關閉SSH shell也可以繼續在後臺運行。只需按下Ctrl+B,然後D(按D時不要按Ctrl )就會返回到初始界面,你就會看到消息:已經斷開當前會話。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

如果有需要,也可以使用下面的代碼來再次重連會話:

 

tmux attach -t StreamSession

 

2.SSH 隧道訪問本地瀏覽器上的Jupyter notebook

 

第二步是進入Amazon instance,在本地瀏覽器上獲取Jupyter Notebook。可以看到,實際上JupyterNotebook正在雲實例的本地主機上運行。那麼我們該如何進行訪問呢?SSH 隧道。相當於是直接地在填空。只需在本地機器終端窗口上使用以下指令:

 

ssh -i "aws_key.pem" -L<Local Machine Port>:localhost:8888 ubuntu@<Your PublicDNS(IPv4)>

 

這種情況使用的是:

 

ssh -i "aws_key.pem" -L8001:localhost:8888 [email protected]

意味着如果我在本地機器瀏覽器上打開本地主機:8001,就一定能使用JupyterNotebook。現在輸入之前步驟中保存的令牌來訪問notebook。令牌是


5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

 

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

用自己的令牌登錄,這下子就完全擁有自己的notebook啦!

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

現在選擇任一想要的環境就可以着手進行新的項目了。可以是Tensorflow或Pytorch,或是兩者一起的最佳版本。這個notebook可不會讓你失望的。

 

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

終結重複工作!教你30分鐘創建自己的深度學習機器

調試

 

一旦機器重新啓動,可能會面臨一些NVIDIA顯卡上的問題。我就碰到了nvidia-smi指令停止工作的情況。如果遇到這個問題,可以通過從NVIDIA網站下載圖形驅動程序來解決。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

以上是我選擇的特定AMI的設置。點擊搜索,就能看到下一頁:

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

只需右鍵單擊並複製鏈接地址即可複製下載鏈接。然後在機器上運行以下指令。你可能需要在這上面更改鏈接地址和文件名。

 

# 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=Teslasudo shNVIDIA-Linux-x86_64-410.129-diagnostic.run --no-drm --disable-nouveau --dkms--silent --install-libglvndmodinfo nvidia | head -7sudo modprobe nvidia

 

終結重複工作!教你30分鐘創建自己的深度學習機器

停止實例

 

好啦,你已經創建並開始運行深度學習機器了,可以想怎麼使用就怎麼使用。

 

有一點要注意,記住停止工作時要停止實例,以免不在實例上工作時還要向Amazon支付費用。此外,在這臺機器上再次登陸時,需要從instance頁面獲取Public DNS(IPv4)以防更改。

 

終結重複工作!教你30分鐘創建自己的深度學習機器

 

建立一個深度學習環境是一件很重要的事情。現在你已經學會了如何在最短的時間內,使用深度學習 CommunityAMI、TMUX和 Tunneling在EC2爲Jupyter Notebooks創建了一個新的深度學習服務器。這臺預裝的服務器裏有所有可能在工作中需要的深度學習庫,並能即時運作。

 

所以,你還在等什麼呢?

終結重複工作!教你30分鐘創建自己的深度學習機器

 

 

我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 “讀芯術”

(添加小編微信:dxsxbb,加入讀者圈,一起討論最新鮮的人工智能科技哦~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章