每當我開始一個新的項目時,我發現自己一次又一次地創建一個深度學習機器。
從安裝Anaconda開始,最後為Pytorch和Tensorflow創建不同的環境,這樣它們就不會相互幹擾。而在這中間,你不可避免地會搞砸,從頭開始。這種情況經常發生多次。
這不僅是對時間的巨大浪費,它也是令人惱火的。通過所有的堆棧溢出線程,我們經常想知道究竟出了什麼問題。
那麼,有沒有一種方法可以更有效地做到這一點呢?
在這個博客中,我將嘗試在EC2上以最小的努力建立一個深度學習伺服器,這樣我就可以專注於更重要的事情。
本博客明確地由兩部分組成:
別擔心,這不像聽起來那麼難。只需按照步驟操作,然後單擊「下一步」。
我假設你擁有一個AWS帳戶,並且可以訪問AWS控制臺。如果沒有,你可能需要註冊一個Amazon AWS帳戶。
請確保此密鑰對的安全,因為每當你要登錄實例時都需要這樣做。
chmod 400 aws_key.pem
完成此操作後,你將可以通過SSH連接到你的實例。SSH命令的格式為:
ssh -i「 aws_key.pem」 ubuntu @ <你的PublicDNS(IPv4)>
對我來說,命令是:
ssh -i「 aws_key.pem」 ubuntu@ec2-54-202-223-197.us-west-2.compute.amazonaws.com
另外,請記住,一旦關閉實例,公用DNS可能會更改。
但是,仍然需要使用一些東西才能充分使用計算機。其中之一就是Jupyter Notebook。要在計算機上設置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
第二步是進入Amazon實例,以便在本地瀏覽器上獲取Jupyter notebook。如我們所見,Jupyter notebook實際上運行在雲實例的本地主機上。我們如何訪問它?我們使用SSH隧道。不用擔心,這很簡單。只需在本地機器終端窗口上使用以下命令:
ssh -i「 aws_key.pem」 -L <本地計算機埠>:localhost:8888 ubuntu @ <你的PublicDNS(IPv4)>
對於這種情況,我使用了:
ssh -i &34; -L 8001:localhost:8888 ubuntu@ec2-54-202-223-197.us-west-2.compute.amazonaws.com
這意味著,如果我在本地計算機瀏覽器中打開localhost:8001,則可以使用Jupyter Notebook。我當然可以。現在,我們只需輸入在先前的步驟之一中已經保存的令牌即可訪問notebook。對我來說令牌是5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872
你只需使用你的令牌登錄即可。
現在,你可以通過選擇所需的任何不同環境來選擇新項目。你可以來自Tensorflow或Pythorch,也可以兩者兼得。notebook不會讓你失望的。
重新啟動計算機後,你可能會遇到NVIDIA圖形卡的一些問題。具體來說,就我而言,該nvidia-smi命令停止工作。如果遇到此問題,解決方案是從NVIDIA 網站下載圖形驅動程序。
以上是我選擇的特定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=Teslasudo sh NVIDIA-Linux-x86_64-410.129-diagnostic.run --no-drm --disable-nouveau --dkms --silent --install-libglvndmodinfo nvidia | head -7sudo modprobe nvidia
就是這樣。你已經掌握並啟動了深度學習機器,並且可以隨意使用它。請記住,無論何時停止工作,都應停止實例,因此,當你不在實例上工作時,無需向Amazon付費。你可以在實例頁面上通過右鍵單擊你的實例來執行此操作。請注意,當你需要再次登錄到該計算機時,你可能需要從實例頁面重新獲得公共DNS(IPv4)地址,因為它可能已更改。
我一直覺得建立深度學習環境非常麻煩。
在此博客中,我們通過使用深度學習社區AMI,TMUX和Jupyter Notebook的隧道技術,在最短的時間內在EC2上設置了新的深度學習伺服器。該伺服器已預先安裝了你在工作中可能需要的所有深度學習庫,並且開箱即用。
那你還在等什麼?只需在你自己的伺服器上開始使用深度學習即可。