偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

用Azure ML Service構建和部署機器學習模型

譯文
人工智能 機器學習
我們在本教程中將構建和部署一個機器模型,以便利用Stackoverflow數(shù)據(jù)集預測工資。 看完本文后,你能夠調用充分利用REST的Web服務來獲得預測結果。

[[256196]]

【51CTO.com快譯】我們在本教程中將構建和部署一個機器模型,以便利用Stackoverflow數(shù)據(jù)集預測工資。 看完本文后,你能夠調用充分利用REST的Web服務來獲得預測結果。

由于目的是演示工作流程,我們將使用一個簡單的雙列數(shù)據(jù)集進行試驗,該數(shù)據(jù)集包含多年的工作經驗和薪水。想了解數(shù)據(jù)集的詳細信息,參閱我之前介紹線性回歸的那篇文章。

先決條件

1.Python和Scikit-learn方面的基礎知識

2.有效的微軟Azure訂閱

3.Anaconda或Miniconda

配置開發(fā)環(huán)境

使用Azure ML SDK配置一個虛擬環(huán)境。 運行以下命令以安裝Python SDK,并啟動Jupyter Notebook。從Jupyter啟動一個新的Python 3內核。 

  1. $ conda create -n aml -y Python=3.6  
  2. $ conda activate aml  
  3. $ conda install nb_conda  
  4. $ pip install azureml-sdk[notebooks]  
  5. $ jupyter notebook  

初始化Azure ML環(huán)境

先導入所有必要的Python模塊,包括標準的Scikit-learn模塊和Azure ML模塊。 

  1. import datetime  
  2. import numpy as np  
  3. import pandas as pd  
  4. from sklearn.model_selection import train_test_split  
  5. from sklearn.linear_model import LinearRegression  
  6. from sklearn.externals import joblib  
  7. import azureml.core  
  8. from azureml.core import Workspace  
  9. from azureml.core.model import Model 
  10. from azureml.core import Experiment  
  11. from azureml.core.webservice import Webservice  
  12. from azureml.core.image import ContainerImage  
  13. from azureml.core.webservice import AciWebservice  
  14. from azureml.core.conda_dependencies import CondaDependencies  

我們需要創(chuàng)建一個Azure ML Workspace,該工作區(qū)充當我們這次試驗的邏輯邊界。Workspace創(chuàng)建用于存儲數(shù)據(jù)集的Storage Account、存儲秘密信息的Key Vault、維護映像中心的Container Registry以及記錄度量指標的Application Insights。

別忘了把占位符換成你的訂閱ID。 

  1. ws = Workspace.create(name='salary' 
  2. subscription_id='' 
  3. resource_group='mi2' 
  4. create_resource_group=True 
  5. location='southeastasia'  
  6.  

幾分鐘后,我們會看到Workspace里面創(chuàng)建的資源。

現(xiàn)在我們可以創(chuàng)建一個Experiment開始記錄度量指標。由于我們沒有許多參數(shù)要記錄,于是獲取訓練過程的啟始時間。 

  1. exp = Experiment(workspace=ws, name='salexp' 
  2. run = exp.start_logging()  
  3. run.log("Experiment start time", str(datetime.datetime.now()))  

訓練和測試Scikit-learn ML模塊

現(xiàn)在我們將進而借助Scikit-learn訓練和測試模型。 

  1. sal = pd.read_csv('data/sal.csv',header=0, index_col=None)  
  2. X = sal[['x']]  
  3. y = sal['y' 
  4. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=10)  
  5. lm = LinearRegression()  
  6. lm.fit(X_train,y_train)  

經過訓練的模型將被序列化成輸出目錄中的pickle文件。Azure ML將輸出目錄的內容自動拷貝到云端。 

  1. filename = 'outputs/sal_model.pkl'  
  2. joblib.dump(lm, filename)  

不妨記錄訓練作業(yè)的斜率、截距和結束時間,從而完成試驗。 

  1. run.log('Intercept :', lm.intercept_)  
  2. run.log('Slope :', lm.coef_[0])  
  3. run.log("Experiment end time", str(datetime.datetime.now()))  
  4. run.complete()  

我們可以通過Azure Dashboard來跟蹤度量指標和執(zhí)行時間。

注冊和加載經過訓練的模型

每當我們凍結模型,它可以用獨特的版本向Azure ML注冊。這讓我們能夠在加載時在不同的模型之間輕松切換。

不妨將SDK指向PKL文件的位置,注冊來自上述訓練作業(yè)的工資模型。我們還將一些額外的元數(shù)據(jù)以標簽這種形式添加到模型中。 

  1. model = Model.register(model_path = "outputs/sal_model.pkl" 
  2. model_name = "sal_model" 
  3. tags = {"key""1"},  
  4. description = "Salary Prediction" 
  5. workspace = ws)  

檢查Workspace的Models部分,確保我們的模型已注冊。

是時候將模型打包成容器映像(到時作為Web服務來公開)并部署的時候了。

為了創(chuàng)建容器映像,我們需要將模型所需的環(huán)境告訴Azure ML。然而,我們傳遞一段Python腳本,該腳本含有基于入站數(shù)據(jù)點來預測數(shù)值的代碼。

Azure ML API為兩者提供了便利的方法。不妨先創(chuàng)建環(huán)境文件salenv.yaml,該文件告訴運行時環(huán)境在容器映像中添加Scikit-learn。 

  1. salenv = CondaDependencies()  
  2. salenv.add_conda_package("scikit-learn" 
  3. with open("salenv.yml","w"as f:  
  4. f.write(salenv.serialize_to_string())  
  5. with open("salenv.yml","r"as f:  
  6. print(f.read())  

下列代碼片段從Jupyter Notebook來執(zhí)行時,創(chuàng)建一個名為score.py的文件,該文件含有模型的推理邏輯。 

  1. %%writefile score.py  
  2. import json  
  3. import numpy as np  
  4. import os  
  5. import pickle  
  6. from sklearn.externals import joblib  
  7. from sklearn.linear_model import LogisticRegression  
  8. from azureml.core.model import Model  
  9. def init():  
  10. global model  
  11. # retrieve the path to the model file using the model name  
  12. model_path = Model.get_model_path('sal_model' 
  13. model = joblib.load(model_path)  
  14. def run(raw_data):  
  15. data = np.array(json.loads(raw_data)['data'])  
  16. # make prediction  
  17. y_hat = model.predict(data)  
  18. return json.dumps(y_hat.tolist())  

現(xiàn)在將推理文件和環(huán)境配置傳遞給映像,從而將各點連起來。 

  1. %%time  
  2. image_config = ContainerImage.image_configuration(execution_script="score.py" 
  3. runtime="python"
  4. conda_file="salenv.yml" 

這最終會創(chuàng)建將出現(xiàn)在Workspace的Images部分中的容器映像。

我們都已準備創(chuàng)建定義目標環(huán)境的部署配置,并將它作為托管在Azure Container Instance的Web服務來運行。我們還決定選擇AKS或物聯(lián)網邊緣環(huán)境作為部署目標。 

  1. aciconfig = AciWebservice.deploy_configuration(cpu_cores=1,  
  2. memory_gb=1,  
  3. tags={"data""Salary""method" : "sklearn"},  
  4. description='Predict Stackoverflow Salary' 
  5. service = Webservice.deploy_from_model(workspace=ws,  
  6. name='salary-svc' 
  7. deployment_config=aciconfig,  
  8. models=[model],  
  9. image_config=image_config)  
  10. service.wait_for_deployment(show_output=True

Azure Resource Group現(xiàn)在有一個為模型運行推理的Azure Container Instance。

 

我們可以從下面這個方法獲得推理服務的URL: 

  1. print(service.scoring_uri) 

現(xiàn)在通過cURL來調用Web服務。我們可以從同一個Jupyter Notebook來做到這一點。

你可以從Github代碼庫來訪問數(shù)據(jù)集和Jupyter Notebook。

這種方法的獨特之處在于,我們可以從在Jupyter Notebook里面運行的Python內核來執(zhí)行所有任務。開發(fā)人員可以利用代碼完成訓練和部署ML模型所需的各項任務。這正是使用諸如ML Service之類的ML PaaS具有的好處。

原文標題:Build and Deploy a Machine Learning Model with Azure ML Service,作者:Janakiram MSV

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2022-08-09 13:44:37

機器學習PySpark M數(shù)據(jù)分析

2024-01-05 07:41:34

OpenLLM大語言模型LLM

2018-11-07 09:00:00

機器學習模型Amazon Sage

2020-10-14 14:18:33

機器學習機器學習架構人工智能

2024-09-09 11:45:15

ONNX部署模型

2014-06-26 14:08:28

Azure云服務

2017-07-07 14:41:13

機器學習神經網絡JavaScript

2021-11-02 09:40:50

TensorFlow機器學習人工智能

2022-08-01 11:50:47

PySpark流失預測模型

2020-05-21 14:05:17

TFserving深度學習架構

2025-03-04 08:00:00

機器學習Rust開發(fā)

2020-11-17 17:28:29

機器學習技術人工智能

2024-02-20 15:17:35

機器學習模型部署

2019-10-23 08:00:00

Flask機器學習人工智能

2020-11-19 10:04:45

人工智能

2021-01-25 09:00:00

機器學習人工智能算法

2024-10-12 08:00:00

機器學習Docker

2022-09-07 08:00:00

機器學習MLFlow工具

2021-04-20 12:53:34

Polkadot部署合約

2020-04-17 14:48:30

代碼機器學習Python
點贊
收藏

51CTO技術棧公眾號