在30分鐘內創建你的深度學習伺服器

2020-08-28 人工智慧遇見磐創

每當我開始一個新的項目時,我發現自己一次又一次地創建一個深度學習機器。

從安裝Anaconda開始,最後為Pytorch和Tensorflow創建不同的環境,這樣它們就不會相互幹擾。而在這中間,你不可避免地會搞砸,從頭開始。這種情況經常發生多次。

這不僅是對時間的巨大浪費,它也是令人惱火的。通過所有的堆棧溢出線程,我們經常想知道究竟出了什麼問題。

那麼,有沒有一種方法可以更有效地做到這一點呢?

在這個博客中,我將嘗試在EC2上以最小的努力建立一個深度學習伺服器,這樣我就可以專注於更重要的事情。

本博客明確地由兩部分組成:

  • 設置一個預先安裝了深度學習庫的Amazon EC2機器。
  • 使用TMUX和SSH隧道設置Jupyter notebook。

別擔心,這不像聽起來那麼難。只需按照步驟操作,然後單擊「下一步」。

設置Amazon EC2計算機

我假設你擁有一個AWS帳戶,並且可以訪問AWS控制臺。如果沒有,你可能需要註冊一個Amazon AWS帳戶。

  • AWS控制臺:https://aws.amazon.com/console/
  • 首先,我們需要轉到「Services」選項卡以訪問EC2儀錶板。

  1. 在EC2儀錶板上,你可以從創建實例開始。

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

  1. 選擇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/

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

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

請確保此密鑰對的安全,因為每當你要登錄實例時都需要這樣做。

  1. 現在,你可以單擊下一頁上的「View Instances」以查看你的實例。這是你的實例的樣子:

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

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可能會更改。

  1. 你已經準備好機器並準備就緒。本機包含不同的環境,這些環境具有你可能需要的各種庫。這臺特定的機器具有MXNet,Tensorflow和Pytorch,以及不同版本的python。最好的事情是,我們已經預先安裝了所有這些功能,因此開箱即用。

設置Jupyter Notebook

但是,仍然需要使用一些東西才能充分使用計算機。其中之一就是Jupyter Notebook。要在計算機上設置Jupyter Notebook,我建議使用TMUX和隧道。讓我們逐步設置Jupyter Notebook。

  1. 使用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

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

第二步是進入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

  • 令牌: 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=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上設置了新的深度學習伺服器。該伺服器已預先安裝了你在工作中可能需要的所有深度學習庫,並且開箱即用。

那你還在等什麼?只需在你自己的伺服器上開始使用深度學習即可。

相關焦點

  • 11步,教你創建深度學習聊天機器人
    全文共4687字,預計學習時長9分鐘創建一款聊天機器人時,目標應該是令其僅需最少的人類幹預甚至無需人類幹預。這一目標可通過兩種方法實現。第一種方法是,客服團隊接收來自人工智慧的建議,以改進客戶服務方式。第二種方法是應用一款深度學習聊天機器人,它能自行處理所有對話,無需客服團隊。
  • 百度飛槳深度學習能力登陸浪潮AI伺服器 完善伺服器側戰略布局
    根據介紹,本次合作將讓深度學習開發者可以在浪潮AI伺服器上應用飛槳的深度學習能力。在此基礎上,雙方將攜手創建一個開放全新的生態,賦能產業開發者,推進產業智能化進程。 據悉,當前,飛槳的PaddleHub、AutoDL Design、PARL三大工具模塊,及包括ERNIE持續學習語義理解框架在內的160+個有優勢性能的預訓練模型,已經整合在浪潮AIStation平臺上,開發者可同時享有敏捷高效的AI計算資源管理部署和專業AI框架優化服務。
  • 深度學習大熱!浪潮發布Tesla GPU加速伺服器
    【天極網伺服器頻道2月27日消息】近日,中國數據中心領導廠商浪潮在其「整機櫃伺服器2015年度產品策略發布會」上,正式發布了基於NVIDIA® Tesla® GPU 加速器的整機櫃伺服器——SmartRack 協處理加速整機櫃伺服器,這是一款密集型高度並行計算伺服器,主要面向人工智慧、深度學習等應用。
  • 手把手 | 30行JavaScript代碼,教你分分鐘創建神經網絡
    今天我們將手把手教你如何用30行代碼輕鬆創建一個神經網絡 。在本篇文章中,你將學到如何使用Synaptic.js(https://synaptic.juancazala.com/#/)創建和訓練神經網絡。利用這款工具,我們可以在瀏覽器中用Node.js進行深度學習。
  • NVIDIA發布全新深度學習伺服器:DGX-1
    NVIDIA CEO黃仁勳在宣布了計算卡Tesla P100之後,緊接著宣布了全新的深度學習伺服器——DGX-1。同時整個伺服器搭載了7TB的SSD,據黃仁勳所說,DGX-1相當於搭載了250臺伺服器。
  • 自建GPU伺服器:搭建自己的深度學習PC
    搭建自己的GPU伺服器並不困難,這樣做還可以輕鬆地降低在雲中訓練深度學習模型的成本。 很多深度學習的實踐者們渴望在有生之年搭建自己的深度學習機器,擺脫雲的魔掌,這樣的時代就到來了。雲計算是開展深度學習的理想選擇,它往往是訓練大規模深度學習模型的最佳答案。
  • python在幾分鐘內學習Django REST框架
    在幾分鐘內學習Django REST框架如今,編寫REST API對於開發人員來說確實很普遍。面對技術棧的選擇,我傾向於將 Django 作為我的第一個選擇。「為什麼?」 你應該問。原因很簡單:它是用Python開發的(我很喜歡)。這是一個經過考驗的框架,可讓您快速部署到生產環境並測試API。
  • 你了解GPU嗎?為什麼說深度學習需要GPU?
    當數據集變得更大時,使用較小的訓練集花費數分鐘的任務現在可能需要花費更多的時間(在某些情況下是幾周)。那什麼是GPU?它們如何與CPU相抗衡?我的深度學習項目需要一個嗎?如果您曾經問過自己這些問題,請繼續閱讀...
  • NVIDIA英偉達:深度學習伺服器搭建指南 | 交流會筆記
    主講人:Ken(何琨)| NVIDIA開發者社區經理張康 屈鑫 編輯整理量子位 出品 | 公眾號 QbitAI7月21日,量子位聯合NVIDIA英偉達舉行了線下交流會,跟現場近百位開發者同學共同探討了深度學習伺服器搭建過程中可能出現的問題,交流了在開發中的實戰經驗。
  • OpenAI 教你如何構建深度學習研究的基礎設施
    我們希望,這篇文章有助於你構建自己的深度學習基礎設施。用例深度學習的發展通常源於一個構想,你運用一個小問題來測試該構想的可行性。在這個階段,你想要快速開展許多特設實驗。理想條件下,你僅需要運用SSH(外殼安全協議)連接一臺計算機,在屏幕上編寫腳本代碼,通過這樣的操作,獲取結果,整個研究過程耗時不超過一個小時。
  • 新手掃盲必讀:深度學習平臺發展及應用
    提到DisBelief我們會自然的聯想到學習貓,學習貓的底層計算是基於DistBelief平臺,當時用他們用了兩千個節點(1,6000個CPU)1周內完成10億參數的DNN算法訓練,能夠分析出當前圖片是不是貓。  DisBelief是基於 CPU集群實現的數據並行和模型並行框架,模型並行主要是在節點內通過多線程實現加速的,節點間通過消息傳遞實現分布式數據並行加速。
  • DELL高性能GPU運算-深度學習伺服器
    DELL高性能GPU運算-深度學習伺服器 2021-01-06 05:23:00   [  中關村在線 原創  ]       【中關村在線北京行情】戴爾易安信 PowerEdge T640 塔式伺服器伺服器
  • 30分鐘搭建屬於自己的家庭多媒體伺服器
    如果有人告訴你,只需要30分鐘就能搭建一個屬於你自己的家庭多媒體伺服器,你肯定是不信的。但是在鐵威馬TOS系統的輔助下,這一點真的可以很簡單的實現。
  • 不用寫代碼就能實現深度學習?手把手教你用英偉達 DIGITS 解決圖像...
    英偉達想必大家都有所耳聞,但對英偉達開發的深度學習訓練系統(NVIDIA Deep Learning GPU Training System, DIGITS) 知之甚少,今天我們介紹如何使用DIGITS,實現基於深度神經網絡的圖像分類,包括數據集創建、模型創建、模型訓練、模型測試等等。
  • 深度學習入門指北——從硬體到軟體
    CUDA 是迄今為止發展最好的,擁有最廣泛生態系統的,也是最被深度學習框架支持的集成技術。由於 CUDA 是由英偉達創建的集成技術,所以它無法被其它公司的 GPU 所使用。所以當 fast.ai 推薦使用英偉達的 GPU 時,並不是因為我們對英偉達公司有好感或者說英偉達給了好處,而僅僅是因為這是目前深度學習的最佳選擇。
  • 入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras
    我們的個人電腦一般很難勝任這樣大的網絡,但是你可以相對輕鬆地在Amazon EC2服務中租到一臺強勁的電腦,並按小時支付租金。我用的是Keras,一個神經網絡的開源python庫。由於用法十分簡單,它很適合入門深度學習。它基於Tensorflow,一個數值計算的開源庫,但是也可以使用Theano。租到的機器可以使用Jupyter Notebook通過瀏覽器來訪問。
  • 使用OpenCV和OpenVINO輕鬆創建深度學習應用
    OpenCV 是業界使用最為廣泛的計算機視覺庫,隨著深度學習在計算機視覺領域的廣泛應用,OpenCV 自3.3開始加入對深度學習推理的支持,即OpenCV DNN模塊。它支持TensorFlow、Caffe、Torch、DarkNet、ONNX 和 OpenVINO 格式的網絡模型,開發者無需考慮模型格式的差異,直接調用DNN模塊相關接口即可快速創建深度學習應用。
  • python深度學習:為什麼要學習深度學習?
    正如一位學者所說:&34;深度學習網絡是神經網絡革命性的發展,人們甚至認為可以用它來創建更強大的預測模型。」2.1 成功的藍圖簡單來說,深度神經網絡是一種用多層抽象來表示概念或特徵的方式。其實,任何工程師或者建築師都在用這種基本方法。
  • 亞馬遜雲伺服器免費搭建創建你的實例
    今天給大家分享亞馬遜免費搭建伺服器創建你的實例,作為一個開發工作者,我想大家一直都希望能擁有一臺屬於自己的伺服器能部署應用,在之前很早就盯上了阿里雲和騰訊雲的注意,但是阿里和騰訊的試用都不長,阿里最多30天,騰訊更是最有7天(馬爸爸這是看不起我尊貴心悅2嗎?)
  • 深度學習的學習率調節實踐
    當一個ANN包含一個很深的隱藏層時,它被稱為深度神經網絡(DNN)。在這項調查中,我們將在MNIST時尚數據集上訓練一個深度MLP,並通過指數增長來尋找最佳學習率,繪製損失圖,並找到損失增長的點,以達到85%以上的準確率。對於最佳實踐,我們將實現早期停止,保存檢查點,並使用TensorBoard繪製學習曲線。