成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Azure ML Service構(gòu)建和部署機(jī)器學(xué)習(xí)模型

譯文
人工智能 機(jī)器學(xué)習(xí)
我們?cè)诒窘坛讨袑?gòu)建和部署一個(gè)機(jī)器模型,以便利用Stackoverflow數(shù)據(jù)集預(yù)測(cè)工資。 看完本文后,你能夠調(diào)用充分利用REST的Web服務(wù)來獲得預(yù)測(cè)結(jié)果。

[[256196]]

【51CTO.com快譯】我們?cè)诒窘坛讨袑?gòu)建和部署一個(gè)機(jī)器模型,以便利用Stackoverflow數(shù)據(jù)集預(yù)測(cè)工資。 看完本文后,你能夠調(diào)用充分利用REST的Web服務(wù)來獲得預(yù)測(cè)結(jié)果。

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

先決條件

1.Python和Scikit-learn方面的基礎(chǔ)知識(shí)

2.有效的微軟Azure訂閱

3.Anaconda或Miniconda

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

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

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

先導(dǎo)入所有必要的Python模塊,包括標(biāo)準(zhǔn)的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  

我們需要?jiǎng)?chuàng)建一個(gè)Azure ML Workspace,該工作區(qū)充當(dāng)我們這次試驗(yàn)的邏輯邊界。Workspace創(chuàng)建用于存儲(chǔ)數(shù)據(jù)集的Storage Account、存儲(chǔ)秘密信息的Key Vault、維護(hù)映像中心的Container Registry以及記錄度量指標(biāo)的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.  

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

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

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

訓(xùn)練和測(cè)試Scikit-learn ML模塊

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

  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)  

經(jīng)過訓(xùn)練的模型將被序列化成輸出目錄中的pickle文件。Azure ML將輸出目錄的內(nèi)容自動(dòng)拷貝到云端。 

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

不妨記錄訓(xùn)練作業(yè)的斜率、截距和結(jié)束時(shí)間,從而完成試驗(yàn)。 

  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來跟蹤度量指標(biāo)和執(zhí)行時(shí)間。

注冊(cè)和加載經(jīng)過訓(xùn)練的模型

每當(dāng)我們凍結(jié)模型,它可以用獨(dú)特的版本向Azure ML注冊(cè)。這讓我們能夠在加載時(shí)在不同的模型之間輕松切換。

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

  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部分,確保我們的模型已注冊(cè)。

是時(shí)候?qū)⒛P痛虬扇萜饔诚?到時(shí)作為Web服務(wù)來公開)并部署的時(shí)候了。

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

Azure ML API為兩者提供了便利的方法。不妨先創(chuàng)建環(huán)境文件salenv.yaml,該文件告訴運(yùn)行時(shí)環(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í)行時(shí),創(chuàng)建一個(gè)名為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)境配置傳遞給映像,從而將各點(diǎn)連起來。 

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

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

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

  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)在有一個(gè)為模型運(yùn)行推理的Azure Container Instance。

 

我們可以從下面這個(gè)方法獲得推理服務(wù)的URL: 

  1. print(service.scoring_uri) 

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

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

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

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

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2022-08-09 13:44:37

機(jī)器學(xué)習(xí)PySpark M數(shù)據(jù)分析

2024-01-05 07:41:34

OpenLLM大語言模型LLM

2018-11-07 09:00:00

機(jī)器學(xué)習(xí)模型Amazon Sage

2020-10-14 14:18:33

機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)架構(gòu)人工智能

2024-09-09 11:45:15

ONNX部署模型

2017-07-07 14:41:13

機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)JavaScript

2021-11-02 09:40:50

TensorFlow機(jī)器學(xué)習(xí)人工智能

2014-06-26 14:08:28

Azure云服務(wù)

2022-08-01 11:50:47

PySpark流失預(yù)測(cè)模型

2025-03-04 08:00:00

機(jī)器學(xué)習(xí)Rust開發(fā)

2020-05-21 14:05:17

TFserving深度學(xué)習(xí)架構(gòu)

2020-11-17 17:28:29

機(jī)器學(xué)習(xí)技術(shù)人工智能

2024-02-20 15:17:35

機(jī)器學(xué)習(xí)模型部署

2019-10-23 08:00:00

Flask機(jī)器學(xué)習(xí)人工智能

2020-11-19 10:04:45

人工智能

2024-10-12 08:00:00

機(jī)器學(xué)習(xí)Docker

2021-01-25 09:00:00

機(jī)器學(xué)習(xí)人工智能算法

2022-09-07 08:00:00

機(jī)器學(xué)習(xí)MLFlow工具

2021-04-20 12:53:34

Polkadot部署合約

2020-04-17 14:48:30

代碼機(jī)器學(xué)習(xí)Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产激情视频 | 日韩一区二区三区视频在线观看 | 亚洲欧美视频一区 | 久草在线高清 | 欧美一区二区三区久久精品 | 国产精品久久久久久久久大全 | 亚洲三区在线观看 | 国产精品区二区三区日本 | 国产在线一区观看 | 日韩一区av | 亚洲高清一区二区三区 | 亚洲国产精品久久久久婷婷老年 | www,黄色,com | 久久精品久久久久久 | 国产一区二区中文字幕 | 亚洲精品一区中文字幕 | 拍戏被cao翻了h承欢 | 电影在线 | 在线播放精品视频 | 欧美日韩在线播放 | 免费午夜剧场 | 视频一区二区在线观看 | 久久88| 一区二区三区视频 | 99精彩视频 | 亚洲精品一区二区三区在线 | 成人在线播放 | 久久黄网| 久久在线视频 | 精品国产一区久久 | 日本天堂一区二区 | 精品欧美乱码久久久久久 | 日本在线精品视频 | 亚洲一区二区三区四区五区中文 | 日日干干| av在线一区二区三区 | 亚洲国产福利视频 | 欧美精品一二区 | 久久精彩视频 | 麻豆一区二区三区 | 欧美一级欧美三级在线观看 |