<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 如何使用 Amazon Web Services 在云中訓練 XGBoost 模型 > 原文: [https://machinelearningmastery.com/train-xgboost-models-cloud-amazon-web-services/](https://machinelearningmastery.com/train-xgboost-models-cloud-amazon-web-services/) XGBoost 庫提供了針對速度和表現而設計的梯度提升實現。 它的實現是為了充分利用您的計算資源,包括所有 CPU 內核和內存。 在這篇文章中,您將了解如何在亞馬遜的云服務上設置服務器,以便快速,廉價地創建非常大的模型。 閱讀這篇文章后你會知道: * 如何設置和配置 Amazon EC2 服務器實例以與 XGBoost 一起使用。 * 如何確認 XGBoost 的并行功能正在您的服務器上運行。 * 如何將數據和代碼傳輸到您的服務器并訓練一個非常大的模型。 讓我們開始吧。 ![How to Train XGBoost Models in the Cloud with Amazon Web Services](https://img.kancloud.cn/e9/10/e910d5637c06af41139280fe82f93163_640x425.jpg) 如何使用亞馬遜網絡服務在云中訓練 XGBoost 模型 照片由 [Dennis Jarvis](https://www.flickr.com/photos/archer10/4272153040/) 拍攝,保留一些權利。 ## 教程概述 這個過程非常簡單。以下是我們將在本教程中完成的步驟的概述。 1. 設置您的 AWS 賬戶(如果需要)。 2. 啟動您的 AWS 實例。 3. 登錄并運行您的代碼。 4. 訓練 XGBoost 模型。 5. 關閉您的 AWS 實例。 **注意,在 Amazon** 上使用虛擬服務器實例需要花錢。臨時模型開發的成本非常低(例如每小時不到一美元),這就是為什么它如此吸引人,但它不是免費的。 服務器實例運行 Linux。盡管不需要您知道如何導航 Linux 或類 Unix 環境,但這是可取的。我們只是運行我們的 Python 腳本,因此不需要高級技能。 ## 1.設置您的 AWS 賬戶(如果需要) 您需要在 Amazon Web Services 上擁有一個帳戶。 * 1.您可以通過單擊“登錄到控制臺”,使用 Amazon Web Services 門戶創建帳戶。從那里,您可以使用現有的亞馬遜帳戶登錄或創建新帳戶。 ![AWS Sign-in Button](https://img.kancloud.cn/64/03/6403615ad1789977620c866b4c1f56d2_360x418.jpg) AWS 登錄按鈕 * 2.如果要創建帳戶,您需要提供您的詳細信息以及亞馬遜可以收取的有效信用卡。如果您已經是亞馬遜客戶并且已將您的信用卡存檔,那么此過程會快得多。 **注意**:如果您已經創建了一個新帳戶,則可能需要向 Amazon 支持請求才能獲得批準在本教程的其余部分中使用更大(非免費)的服務器實例。 ## 2.啟動服務器實例 現在您已擁有 AWS 賬戶,您希望啟動可在其上運行 XGBoost 的 EC2 虛擬服務器實例。 啟動實例就像選擇要加載和啟動虛擬服務器的映像一樣簡單。 我們將使用現有的 Fedora Linux 映像并手動安裝 Python 和 XGBoost。 * 1.如果您尚未登錄 [AWS 控制臺](https://console.aws.amazon.com/console/home),請登錄。 ![AWS Console](https://img.kancloud.cn/d6/95/d695bd82bf78dddfc3c30a3540fd9331_569x461.jpg) AWS 控制臺 * 2.單擊 EC2 以啟動新的虛擬服務器。 * 3.選擇“N.加州“從右上角的下拉菜單開始。這很重要,否則您可能無法找到我們計劃使用的圖像(稱為 AMI)。 ![Select N California](https://img.kancloud.cn/50/59/505969ff694ea7f07940d9611b2d9b23_354x148.jpg) 選擇 N California * 4.單擊“啟動實例”按鈕。 * 5.單擊“社區 AMI”。 AMI 是亞馬遜機器映像。它是服務器的凍結實例,您可以在新虛擬服務器上進行選擇和實例化。 ![Community AMIs](https://img.kancloud.cn/2a/bd/2abdc36885b888a4a763aa2aa626e1bf_996x317.png) 社區 AMI * 6.在“搜索社區 AMI”搜索框中輸入 AMI:“ **ami-02d09662** ”,然后按 Enter 鍵。您應該看到一個結果。 這是 [Fedora Linux](https://getfedora.org/) 24 版本的基礎安裝圖像。這是一個非常易于使用的 Linux 發行版。 ![Select the 64-bit Fedora Linux AMI](https://img.kancloud.cn/b3/46/b346feb88f2839d617746d9360982c3d_802x205.jpg) 選擇 64 位 Fedora Linux AMI * 7.單擊“選擇”以在搜索結果中選擇 AMI。 * 8.現在您需要選擇運行映像的硬件。向下滾動并選擇“c3.8xlarge”硬件。 這是一個包含 32 個 CPU 核心,60 GB RAM 和 2 個大型 SSD 磁盤的大型實例。 ![Select the c3.8xlarge Instance Type](https://img.kancloud.cn/1e/37/1e371142a9d5286545c37794dafa85e8_738x84.jpg) 選擇 c3.8xlarge 實例類型 * 9.單擊“查看并啟動”以完成服務器實例的配置。 您將看到類似“您的實例配置不符合免費使用套餐”的警告。這只是表明您將在此服務器上收取費用。我們知道這一點,忽略這個警告。 ![Your instance configuration is not eligible for the free usage tier](https://img.kancloud.cn/3b/a8/3ba87339952164a164e3348a933b34e0_1033x107.jpg) 您的實例配置不符合免費使用套餐的條件 * 10.單擊“啟動”按鈕。 * 11.選擇 SSH 密鑰對。 * 如果您之前使用過 EC2,則選擇“選擇現有密鑰對”并從列表中選擇密鑰對。然后檢查“我確認......”。 * 如果您沒有密鑰對,請選擇“創建新密鑰對”選項并輸入“密鑰對名稱”,例如“xgboost-keypair”。單擊“下載密鑰對”按鈕。 * 12.打開終端并將目錄更改為您下載密鑰對的位置。 * 13.如果尚未執行此操作,請限制密鑰對文件的訪問權限。這是 SSH 訪問服務器的一部分。例如,在您的控制臺上,您可以鍵入: ```py cd Downloads chmod 600 xgboost-keypair.pem ``` * 14.單擊“啟動實例”。 **注意**:如果這是您第一次使用 AWS,亞馬遜可能需要驗證您的請求,這可能需要 2 個小時(通常只需幾分鐘)。 * 15.單擊“查看實例”以查看實例的狀態。 ![Review Your Running Instance and Note its IP Address](https://img.kancloud.cn/bd/b8/bdb8c2b8f7ef43b83b5581f0297e4a47_832x416.jpg) 檢查您的運行實例并記下其 IP 地址 您的服務器現在正在運行,可以登錄。 ## 3.登錄和配置 現在您已經啟動了服務器實例,現在可以登錄并配置它以供使用。 每次啟動服務器時都需要配置服務器。因此,批處理所有工作是個好主意,這樣您就可以充分利用已配置的服務器。 配置服務器不會花費很長時間,總共可能需要 10 分鐘。 * 1.如果您還沒有,請單擊 Amazon EC2 控制臺中的“查看實例”。 * 2.將“公共 IP”(在“描述”中的屏幕底部)復制到剪貼板。 在此示例中,我的 IP 地址為 52.53.185.166。 **請勿使用此 IP 地址,您的 IP 地址會有所不同**。 * 3.打開終端并將目錄更改為您下載密鑰對的位置。使用 SSH 登錄您的服務器,例如您可以輸入: ```py ssh -i xgboost-keypair.pem fedora@52.53.185.166 ``` * 4.第一次登錄服務器實例時可能會提示您警告。您可以忽略此警告,只需鍵入“是”并按 Enter 鍵即可。 您現在已登錄到您的服務器。 通過鍵入,仔細檢查實例上的 CPU 核心數 ```py cat /proc/cpuinfo | grep processor | wc -l ``` 你應該看到: ```py 32 ``` ### 3A。安裝支持包 第一步是安裝所有軟件包以支持 XGBoost。 這包括 GCC,Python 和 SciPy 堆棧。我們將使用 Fedora 包管理器 [dnf](https://en.wikipedia.org/wiki/DNF_(software)) (新的 yum)。 這是一行: ```py sudo dnf install gcc gcc-c++ make git unzip python python2-numpy python2-scipy python2-scikit-learn python2-pandas python2-matplotlib ``` 輸入“y”并在提示時按 Enter 確認要安裝的軟件包。 這將需要幾分鐘時間來下載并安裝所有必需的軟件包。 完成后,我們可以確認環境已成功安裝。 #### i)檢查 GCC 類型: ```py gcc --version ``` You should see: ```py gcc (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` #### ii)檢查 Python Type: ```py python --version ``` You should see: ```py Python 2.7.12 ``` #### iii)檢查 SciPy Type: ```py python -c "import scipy;print(scipy.__version__)" python -c "import numpy;print(numpy.__version__)" python -c "import pandas;print(pandas.__version__)" python -c "import sklearn;print(sklearn.__version__)" ``` 你應該看到類似的東西: ```py 0.16.1 1.11.0 0.18.0 0.17.1 ``` **注意**:如果其中任何一項檢查失敗,請停止并更正任何錯誤。在繼續之前,您必須擁有完整的工作環境。 我們現在準備安裝 XGBoost。 ### 3B。構建并安裝 XGBoost XGBoost 的[安裝說明已完成,我們可以直接關注它們。](https://xgboost.readthedocs.io/en/latest/build.html#python-package-installation) 首先,我們需要在服務器上下載項目。 ```py git clone --recursive https://github.com/dmlc/xgboost cd xgboost ``` 接下來我們需要編譯它。 -j 參數可用于指定期望的核心數。對于 AWS 實例上的 32 個核心,我們可以將其設置為 32。 如果您選擇了不同的 AWS 硬件,則可以適當地進行設置。 ```py make -j32 ``` XGBoost 項目應該成功構建(例如沒有錯誤)。 我們現在準備安裝該庫的 Python 版本。 ```py cd python-package sudo python setup.py install ``` 這就對了。 我們可以輸入以下內容確認安裝是否成功: ```py python -c "import xgboost;print(xgboost.__version__)" ``` 這應該打印如下: ```py 0.4 ``` ## 4.訓練 XGBoost 模型 讓我們通過運行帶有大量內核的 XGBoost 來測試您的大型 AWS 實例。 在本教程中,我們將使用 [Otto Group 產品分類挑戰](https://www.kaggle.com/c/otto-group-product-classification-challenge)數據集。 此數據集可從 Kaggle 免費獲得(您需要注冊 Kaggle 才能下載此數據集)。它描述了超過 61,000 種產品的 93 個模糊細節,這些產品分為 10 個產品類別(例如時裝,電子產品等)。輸入變量是某種不同事件的計數。 目標是對新產品進行預測,因為 10 個類別中的每個類別都有一組概率,并且使用多類對數損失(也稱為交叉熵)來評估模型。 這個競賽在 2015 年 5 月完成,這個數據集對 XGBoost 來說是一個很好的挑戰,因為它有很多例子,問題的難度以及需要很少數據準備的事實(除了將字符串類變量編碼為整數)。 在工作站上創建一個名為 **work /** 的新目錄。 您可以從[數據頁面](https://www.kaggle.com/c/otto-group-product-classification-challenge/data)下載訓練數據集 **train.csv.zip** 并將其放在工作站上的**工作/** 目錄中。 我們將使用不同數量的核心評估在此數據集上訓練 XGBoost 所花費的時間。 我們將嘗試 1 個核心,一半核心 16 和所有 32 個核心。我們可以通過在 **XGBClassifier** 類(XGBoost 的 scikit-learn 包裝器)中設置 **nthread** 參數來指定 XGBoost 算法使用的核心數。 下面列出了完整的示例。將其保存在名為 **work / script.py** 的文件中。 ```py # Otto multi-core test from pandas import read_csv from xgboost import XGBClassifier from sklearn.preprocessing import LabelEncoder import time # load data data = read_csv('train.csv') dataset = data.values # split data into X and y X = dataset[:,0:94] y = dataset[:,94] # encode string class values as integers label_encoded_y = LabelEncoder().fit_transform(y) # evaluate the effect of the number of threads results = [] num_threads = [1, 16, 32] for n in num_threads: start = time.time() model = XGBClassifier(nthread=n) model.fit(X, label_encoded_y) elapsed = time.time() - start print(n, elapsed) results.append(elapsed) ``` 現在,我們可以將您的**工作/** 目錄與數據和腳本一起復制到您的 AWS 服務器。 從**工作/** 目錄所在的當前目錄中的工作站,鍵入: ```py scp -r -i xgboost-keypair.pem work fedora@52.53.185.166:/home/fedora/ ``` 當然,您需要使用密鑰文件和服務器的 IP 地址。 這將在服務器的主目錄中創建一個新的**工作/** 目錄。 重新登錄到您的服務器實例(如果需要): ```py ssh -i xgboost-keypair.pem fedora@52.53.185.166 ``` 將目錄更改為工作目錄并解壓縮訓練數據。 ```py cd work unzip ./train.csv.data ``` 現在我們可以運行腳本并訓練我們的 XGBoost 模型并計算使用不同數量的核心所需的時間: ```py python script.py ``` 您應該看到如下輸出: ```py (1, 84.26896095275879) (16, 6.597043037414551) (32, 7.6703619956970215) ``` 您可以看到 16 到 32 個核心之間的差別很小。我相信這樣做的原因是 AWS 可以通過超線程訪問 16 個物理內核,從而提供額外的虛擬內核。不過,在 7 秒內構建一個大型 XGBoost 模型非常棒。 您可以將此作為模板用于將自己的數據和腳本復制到 AWS 實例。 一個好的建議是將腳本作為后臺進程運行,并將任何輸出轉發到文件。這是為了防止您與服務器的連接中斷或者您要關閉它并讓服務器整晚運行您的代碼。 您可以將代碼作為后臺進程運行,并通過鍵入以下內容將輸出重定向到文件: ```py nohup python script.py >script.py.out 2>&1 & ``` 現在我們完成了,我們可以關閉 AWS 實例。 ## 5.關閉您的 AWS 實例 完成工作后,您必須關閉實例。 請記住,您需要按照使用該實例的時間收費。它很便宜,但如果你不使用它,你不想留下實例。 * 1.在終端注銷您的實例,例如您可以輸入: ```py exit ``` * 2.使用 Web 瀏覽器登錄 AWS 賬戶。 * 3.單擊 EC2。 * 4.單擊左側菜單中的“Instances”。 * 5.從列表中選擇正在運行的實例(如果您只有一個正在運行的實例,則可能已選中該實例)。 * 6.單擊“操作”按鈕并選擇“實例狀態”,然后選擇“終止”。確認您要終止正在運行的實例。 實例可能需要幾秒鐘才能關閉并從實例列表中刪除。 而已。 ## 摘要 在這篇文章中,您了解了如何在 Amazon 云基礎架構上訓練大型 XGBoost 模型。 具體來說,你學到了: * 如何在 Amazon EC2 上為 XGBoost 啟動和配置 Linux 服務器實例。 * 如何安裝在 Python 中運行 XGBoost 庫所需的所有必需軟件。 * 如何將數據和代碼傳輸到服務器并使用服務器上的所有核心訓練大型模型。 您對在 Amazon Web Services 或此帖子上訓練 XGBoost 模型有任何疑問嗎?在評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看