<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 10 個用于 Amazon Web Services 深度學習的命令行秘籍 > 原文: [https://machinelearningmastery.com/command-line-recipes-deep-learning-amazon-web-services/](https://machinelearningmastery.com/command-line-recipes-deep-learning-amazon-web-services/) 在 Amazon Web Services EC2 上運行大型深度學習流程是學習和開發模型的一種廉價而有效的方法。 只需幾美元,您就可以訪問數十 GB 的 RAM,數十個 CPU 內核和多個 GPU。我強烈推薦它。 如果您不熟悉 EC2 或 Linux 命令行,那么在云中運行深度學習腳本時,您會發現有一組指令非常有用。 在本教程中,您將了解我每次使用 EC2 來適應大型深度學習模型時使用的 10 個命令的私有列表。 閱讀這篇文章后,你會知道: * 如何將數據復制到 EC2 實例和從 EC2 實例復制數據。 * 如何將腳本設置為安全地運行數天,數周或數月。 * 如何監控進程,系統和 GPU 表現。 讓我們開始吧。 **注意**:在工作站執行的所有命令都假定您運行的是 Linux 類型的環境(例如 Linux,OS X 或 cygwin)。 **你有在 EC2 上運行模型的任何其他提示,技巧或喜歡的命令嗎?** 請在下面的評論中告訴我。 ![10 Command Line Recipes for Deep Learning on Amazon Web Services](https://img.kancloud.cn/4c/38/4c38a5261277d64f36fd9dfda6ea1c35_640x369.png) 10 亞馬遜網絡服務深度學習命令行方案 [chascar](https://www.flickr.com/photos/chascar/6480093119/) 的照片,保留一些權利。 ## 概觀 本文中提供的命令假定您的 AWS EC2 實例已在運行。 為保持一致性,還做了一些其他假設: * 您的服務器 IP 地址是 _54.218.86.47_ ;將其更改為您服務器的 IP 地址。 * 您的用戶名是 _ec2-user_ ;將其更改為您的用戶名。 * 您的 SSH 密鑰位于 _?/ .ssh /_ 中,文件名為 _aws-keypair.pem_ ;將其更改為 SSH 密鑰位置和文件名。 * 您正在使用 Python 腳本。 如果您需要幫助來設置和運行基于 GPU 的 AWS EC2 實例以進行深度學習,請參閱教程: * [如何使用亞馬遜網絡服務上的 Keras 開發和評估大型深度學習模型](http://machinelearningmastery.com/develop-evaluate-large-deep-learning-models-keras-amazon-web-services/) ## 1.從您的工作站登錄到服務器 您必須先登錄服務器才能執行任何有用的操作。 您可以使用 SSH 安全 shell 輕松登錄。 我建議將 SSH 密鑰存儲在 _?/ .ssh /_ 目錄中,并使用有用的名稱。我使用名稱 _aws-keypair.pem_ 。請記住:文件必須具有權限 600。 以下命令將使您登錄到服務器實例。請記住將用戶名和 IP 地址更改為您的用戶名和服務器實例 IP 地址。 ```py ssh -i ~/.ssh/aws-keypair.pem ec2-user@54.218.86.47 ``` ## 2.將文件從工作站復制到服務器 使用安全副本(scp)將文件從工作站復制到服務器。 以下示例在您的工作站上運行,將工作站本地目錄中的 _script.py_ Python 腳本復制到您的服務器中。 ```py scp -i ~/.ssh/aws-keypair.pem script.py ec2-user@54.218.86.47:~/ ``` ## 3.在服務器將腳本作為后臺進程運行 您可以將 Python 腳本作為后臺進程運行。 此外,您可以以這樣的方式運行它,它將忽略來自其他進程的信號,忽略任何標準輸入(stdin),并將所有輸出和錯誤轉發到日志文件。 根據我的經驗,所有這些都是長期運行腳本以適應大型深度學習模型所必需的。 ```py nohup python /home/ec2-user/script.py >/home/ec2-user/script.py.log </dev/null 2>&1 & ``` 這基于假設您正在運行位于 _/ home / ec2-user /_ 目錄中的 _script.py_ Python 腳本,并且您希望將此腳本的輸出轉發到文件 _script.py.log_ 位于同一目錄中。 調整你的需求。 如果這是你第一次體驗 nohup,你可以在這里了解更多: * 維基百科上的 [nohup](https://en.wikipedia.org/wiki/Nohup) 如果這是您第一次重定向標準輸入(stdin),標準輸出(標準輸出)和標準錯誤(sterr),您可以在此處了解更多信息: * 維基百科上的[重定向](https://en.wikipedia.org/wiki/Redirection_(computing)) ## 4.在服務器上的特定 GPU 上運行腳本 如果您的 AWS EC2 實例可以針對您的問題處理它,我建議您同時運行多個腳本。 例如,您選擇的 EC2 實例可能有 4 個 GPU,您可以選擇在每個實例上運行一個腳本。 使用 CUDA,您可以指定要與環境變量 _CUDA_VISIBLE_DEVICES_ 一起使用的 GPU 設備。 我們可以使用上面相同的命令來運行腳本并指定要使用的特定 GPU 設備,如下所示: ```py CUDA_VISIBLE_DEVICES=0 nohup python /home/ec2-user/script.py >/home/ec2-user/script.py.log </dev/null 2>&1 & ``` 如果您的實例上有 4 個 GPU 設備,則可以將 _CUDA_VISIBLE_DEVICES = 0_ 設定為 _CUDA_VISIBLE_DEVICES = 3。_ 我希望這可以用于 Theano 后端,但我只測試了用于 Keras 的 TensorFlow 后端。 您可以在帖子中了解有關 _CUDA_VISIBLE_DEVICES_ 的更多信息: * [CUDA Pro 提示:使用 CUDA_VISIBLE_DEVICES 控制 GPU 可見性](https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-control-gpu-visibility-cuda_visible_devices/) ## 5.監視服務器上的腳本輸出 您可以在腳本運行時監視腳本的輸出。 如果您在每個訓練周期結束后或每個算法運行后輸出分數,這可能很有用。 此示例將列出腳本日志文件的最后幾行,并在腳本中添加新行后更新輸出。 ```py tail -f script.py.log ``` 如果屏幕暫時沒有獲得新輸出,亞馬遜可能會積極關閉您的終端。 另一種方法是使用 watch 命令。我發現使用這個命令時亞馬遜將保持終端打開: ```py watch "tail script.py.log" ``` 我發現 python 腳本的標準輸出(粗壯)似乎沒有經常更新。 我不知道這是 EC2 還是 Python 的東西。這意味著您可能無法經常看到更新日志中的輸出。當緩沖區達到固定大小或運行結束時,它似乎被緩沖并輸出。 你對此有更多了解嗎? 請在下面的評論中告訴我。 ## 6.監視服務器上的系統和進程表現 監控 EC2 系統表現是個好主意。特別是監控你正在使用和剩下的 RAM 量。 您可以使用將每隔幾秒更新一次的 top 命令來執行此操作。 ```py top -M ``` 如果您知道其進程標識符(PID),還可以監視系統和進程。 ```py top -p PID -M ``` ## 7.監控服務器上的 GPU 表現 密切關注 GPU 表現是一個好主意。 如果您計劃并行運行多個腳本并使用 GPU RAM,再次強調請關注運行 GPU 的 GPU 利用率。 您可以使用 _nvidia-smi_ 命令來關注 GPU 的使用情況。我喜歡使用 _watch_ 命令來保持終端打開并為每個新結果清屏。 ```py watch "nvidia-smi" ``` ## 8.檢查服務器上仍在運行哪些腳本 密切關注哪些腳本仍在運行也很重要。 您可以使用 _ps_ 命令執行此操作。 同樣,我喜歡使用 watch 命令來保持終端打開。 ```py watch "ps -ef | grep python" ``` ## 9.編輯服務器上的文件 我建議不要在服務器上編輯文件,除非你真的需要。 不過,您可以使用 _vi_ 編輯器編輯文件。 下面的示例將在 vi 中打開您的腳本。 ```py vi ~/script.py ``` 當然,您可以使用自己喜歡的命令行編輯器,如 emacs;如果您是 Unix 命令行的新手,本說明非常適合您。 如果這是您第一次接觸 vi,您可以在此處了解更多信息: * 維基百科上的 [vi](https://en.wikipedia.org/wiki/Vi) ## 10.從您的工作站下載服務器中的文件 我建議將模型以及任何結果和圖表明確保存到新腳本和單獨文件中作為腳本的一部分。 您可以使用安全副本(scp)將這些文件從服務器實例下載到工作站。 以下示例從您的工作站運行,并將所有 PNG 文件從您的主目錄復制到您的工作站。 ```py scp -i ~/.ssh/aws-keypair.pem ec2-user@54.218.86.47:~/*.png . ``` ## 其他提示和技巧 本節列出了在 AWS EC2 上進行大量工作時的一些其他提示。 * **一次運行多個腳本**。我建議選擇具有多個 GPU 并一次運行多個腳本的硬件以充分利用該平臺。 * **僅在工作站上編寫和編輯腳本**。將 EC2 視為偽生產環境,并且只在那里復制腳本和數據才能運行。在您的工作站上進行所有開發并編寫代碼的小測試,以確保它能按預期工作。 * **將腳本輸出顯式保存到文件**。將結果,圖形和模型保存到文件中,以后可以將這些文件下載到工作站進行分析和應用。 * **使用 watch 命令**。亞馬遜會殺死沒有活動的終端會話。您可以使用 watch 命令密切關注事物,該命令可以足夠頻繁地發送數據以保持終端打開。 * **從工作站**運行命令**。上面列出的任何打算在服務器上運行的命令也可以從您的工作站運行,只需要通過在命令前添加“ _ssh -_ i _?/ .ssh /_ aws-keypair._ pem _ec2-user@54.218.86.47_ “并引用您要運行的命令。這對于全天檢查流程非常有用。 ## 總結 在本教程中,您了解了我每次使用 GPU 在 AWS EC2 實例上訓練大型深度學習模型時使用的 10 個命令。 具體來說,你學到了: * 如何將數據復制到 EC2 實例和從 EC2 實例復制數據。 * 如何將腳本設置為安全地運行數天,數周或數月。 * 如何監控進程,系統和 GPU 表現。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看