国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

100天搞定機器學習:模型訓練好了,然后呢?

人工智能 機器學習

 100天搞定機器學習|Day1-62 合集

  大家好,我是老胡。

  許久沒有更新100天搞定機器學習系列了,最近在看一個開源框架,其中有用到 gRPC ,它可以用于機器學習模型的部署,也可用于深度學習框架的開發(fā),本文就當是《100天搞定機器學習》的番外篇吧,gRPC ,我們一起探個究竟。

gRPC(Remote Procedure Call)

  gRPC 由 Google 開發(fā),是一款語言中立、平臺中立、開源的 RPC 框架。
RPC(Remote Procedure Call)即:遠程過程調(diào)用,它是一種通過網(wǎng)絡從遠程計算機程序上請求服務,而不需要了解底層網(wǎng)絡技術的協(xié)議。使用的時候,客戶端調(diào)用server端提供的接口就像是調(diào)用本地的函數(shù)一樣。

  比如:有兩臺服務器A,B,一個應用部署在A服務器上,想要調(diào)用B服務器上應用提供的函數(shù)/方法,由于不在一個內(nèi)存空間,不能直接調(diào)用,需要通過網(wǎng)絡來表達調(diào)用的語義和傳達調(diào)用的數(shù)據(jù)。

RPC更像是一種思想或機制,其實現(xiàn)方式有很多,除了gRPC ,還有阿里巴巴的 Dubbo、Facebook 的 Thrift、Twitter 的 Finagle 等。

  gRPC 基于以下理念:定義一個服務,指定其能夠被遠程調(diào)用的方法(包含參數(shù)和返回類型)。在服務端實現(xiàn)這個接口,并運行一個 gRPC 服務器來處理客戶端調(diào)用。在客戶端擁有一個存根能夠像服務端一樣的方法。你可以很容易地用 c++ 創(chuàng)建一個 gRPC 服務端,用 Go、Python、Ruby 來創(chuàng)建客戶端。

上圖中的 Protocbuf 是gRPC的數(shù)據(jù)序列化工具,使用 Protobuf 將數(shù)據(jù)序列化成二進制的數(shù)據(jù)流,即可讓用不同語言(proto3支持C++, Java, Python, Go, Ruby, Objective-C, C#)編寫并在不同平臺上運行的應用程序交換數(shù)據(jù)。ps:Protocbuf 也是 Google 開源的。

  Protocol Buffer 官方提供了編譯工具來對 proto 文件進行編譯并生成語言相關的代碼文件,可以極大地減少編碼的工作量。對于序列化協(xié)議來說,使用方只需要關注業(yè)務對象本身,即 idl 定義,序列化和反序列化的代碼只需要通過工具生成即可。

ProtoBuf 協(xié)議的工作流程 gRPC 實例詳解——機器學習模型部署

 開始實例之前,需要安裝 gRPC 及相關工具

  pip install -U grpcio
pip install -U grpcio-tools
pip install -U protobuf

  •   gRPC的使用通常包括如下幾個步驟:
  •   通過protobuf來定義接口和數(shù)據(jù)類型
  •   編寫gRPC server端代碼
  •   編寫gRPC client端代碼 

  下面我們就以Iris數(shù)據(jù)集為例,用 gRPC server端部署一個隨機森林分類器,client 端發(fā)起請求預測鳶尾花類型。

 0、訓練一個隨機森林分類模型,把訓練好的模型保存為pkl文件。# train_model.py
from sklearn import datasets
from sklearn.pipeline import Pipeline
import joblib
from sklearn.ensemble import RandomForestClassifier

  def main():
clf = RandomForestClassifier()
p = Pipeline([('clf', clf)])
p.fit(X, y)

  filename_p = 'IrisClassifier.pkl'
joblib.dump(p, filename_p)
print('Model saved!')

  if __name__ == "__main__":
iris = datasets.load_iris()
X, y = iris.data, iris.target
main()
1、通過protobuf定義接口和數(shù)據(jù)類型

  新建一個iris_demo.proto文件

  syntax = "proto3";

  package iris;

  message IrisPredictRequest {// 定義參數(shù)1
float sepal_length = 1;//參數(shù)字段1
float sepal_width = 2;//參數(shù)字段2
float petal_length = 3;//參數(shù)字段3
float petal_width = 4;//參數(shù)字段4
}

  message IrisPredictResponse {// 定義參數(shù)1
int32 species = 1;
}

  service IrisPredictor{// 定義服務
rpc predict_iris_species(IrisPredictRequest) returns (IrisPredictResponse){}
}

  proto文件格式一般三部分組成, 

  •   頭部的syntax 注明版本號為 "proto3",必須寫,沒理由。
  •   中間的 message 定義了predict_iris_species方法的參數(shù)IrisPredictRequest和IrisPredictResponse,還有參數(shù)字段的類型。 
  •   尾部的 service 定義一個服務IrisPredictor,其中包括 1 個predict_iris_species的RPC方法。這里可以定義多個RPC方法,在 message 中定義對應的參數(shù)即可。 

2、使用gRPC protobuf生成Python的庫函數(shù)python -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. ./iris_demo.proto
其中:

  -I指定了源文件的路徑

  --python_out, 指定 xxx_pb2.py的輸出路徑,如果使用其它語言請使用對應語言的option

  --grpc_python_out 指定xxx_pb2_grpc.py文件的輸出路徑

  --*.proto是要編譯的proto文件。

  運行成功后,會自動生成iris_demo_pb2.py(里面有消息序列化類)和iris_demo_pb2_grpc.py(包含了服務器 Stub 類和客戶端 Stub 類,以及待實現(xiàn)的服務 RPC 接口)。我們無需關心這兩個py文件的細節(jié),只需要直到在服務端和客戶端怎么調(diào)用即可。

  本例中,我們會用到的方法如下:
xxx_pb2.py
├── xxx_pb2.IrisPredictRequest 用于傳入特征數(shù)據(jù)
├── xxx_pb2.IrisPredictResponse 用于預測

  xxxx_pb2_grpc.py
├── xxx_pb2_grpc.IrisPredictorServicer 服務器 Stub 類
├── xxx_pb2_grpc.IrisPredictorStub 客戶端 Stub 類

  3、寫一個服務器

  這里的重點是定義 IrisPredictor 類的 predict_iris_species 方法,然后用 iris_demo_pb2_grpc.py 中的 add_IrisPredictorServicer_to_server 方法將 IrisPredictor 添加到 server。serve 函數(shù)里定義了 gRPC 的運行方式,使用 4 個 worker 的線程池。

  # iris_prediction_server.py
import grpc
from concurrent import futures
import time
import joblib
import iris_demo_pb2
import iris_demo_pb2_grpc
import predict_iris
from sklearn.ensemble import RandomForestClassifier

  class IrisPredictor(iris_demo_pb2_grpc.IrisPredictorServicer):

  @classmethod
def get_trained_model(cls):
cls._model = joblib.load('IrisClassifier.pkl')
return cls._model

  def predict_iris_species(self, request, context):
model = self.__class__.get_trained_model()
sepal_length = request.sepal_length
sepal_width = request.sepal_width
petal_length = request.petal_length
petal_width = request.petal_width
result = model.predict(
[[sepal_length, sepal_width, petal_length, petal_width]])
response = iris_demo_pb2.IrisPredictResponse(species=result[0])
return response # not sure

  def run():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=4))
iris_demo_pb2_grpc.add_IrisPredictorServicer_to_server(
IrisPredictor(), server)
server.add_insecure_port('[::]:50055')
server.start()
print("grpc server start...")
print("Listening on port 50055")
server.wait_for_termination()

  if __name__ == '__main__':
run()

  4、寫一個客戶端

  客戶端的邏輯更加簡單,連上gRPC服務,然后發(fā)起調(diào)用。

  # iris_prediction_client.py
import grpc
import iris_demo_pb2
import iris_demo_pb2_grpc

  def run():
channel = grpc.insecure_channel('localhost:50055')
stub = iris_demo_pb2_grpc.IrisPredictorStub(channel)
request = iris_demo_pb2.IrisPredictRequest(
sepal_length=6.7,
sepal_width=3.0,
petal_length=5.2,
petal_width=2.3)
response = stub.predict_iris_species(request)
print('The prediction is :', response.species)

  if __name__ == '__main__':
run()

  5、調(diào)用 RPC

  先開啟服務端

  $ python iris_prediction_server.py
grpc server start...
Listening on port 50055

  另起一個terminal執(zhí)行客戶端代碼,調(diào)用gRPC服務,預測結果如下:

  $ python iris_prediction_client.py
The prediction is : 2
referance

責任編輯:梁菲 來源: 網(wǎng)易科技
相關推薦

2018-02-07 14:19:16

深度學習機器學習模型

2022-05-10 10:19:04

AI深度學習模型

2020-08-10 15:05:02

機器學習人工智能計算機

2022-03-28 09:00:00

SQL數(shù)據(jù)庫機器學習

2017-03-24 15:58:46

互聯(lián)網(wǎng)

2024-12-26 00:46:25

機器學習LoRA訓練

2024-11-04 00:24:56

2024-11-26 09:33:44

2018-11-07 09:00:00

機器學習模型Amazon Sage

2020-08-11 11:12:56

微軟TikTok收購

2024-03-11 15:21:42

2018-03-09 09:00:00

前端JavaScript機器學習

2022-09-19 15:37:51

人工智能機器學習大數(shù)據(jù)

2023-05-26 12:45:22

predict?方法數(shù)據(jù)

2023-05-06 18:37:43

2020-04-17 14:48:30

代碼機器學習Python

2010-07-26 09:07:32

Windows SerWindows SerLinux

2021-04-22 08:00:00

人工智能機器學習數(shù)據(jù)

2020-01-02 14:13:01

機器學習模型部署預測

2015-11-06 09:36:20

云計算網(wǎng)絡中斷應急計劃
點贊
收藏

51CTO技術棧公眾號

欧美无砖砖区免费| 色狠狠色狠狠综合| 欧美专区在线播放| 中文字幕在线中文字幕二区| 日本sm残虐另类| 国产日韩中文字幕在线| 精品中文字幕一区二区三区| 精品剧情在线观看| 最后生还者第二季在线观看| 久久精品一区二区三区不卡| 一道精品一区二区三区| 亚洲精品中文字幕乱码| 久久久久久久久国产| 亚洲欧洲日本韩国| 欧美精品日韩综合在线| av一卡二卡| 久久精品综合网| 欧美狂野激情性xxxx在线观| 日韩制服丝袜先锋影音| 亚洲精品日韩av| 国内黄色精品| 午夜精品一区二区三区在线播放| 偷拍精品精品一区二区三区| 精品久久人人做人人爰| 欧美午夜电影一区二区三区| 欧美午夜片在线免费观看| 成人18网址在线观看| 久久综合精品国产一区二区三区| 99久re热视频精品98| 丝袜诱惑亚洲看片| 国产九色精品| 一区在线免费| 国产精品免费在线播放| 91精品一区二区三区综合| 欧洲美女免费图片一区| 超碰成人福利| 欧美大秀在线观看| 亚洲精品一区二区三区在线| 日韩一区二区精品视频| 日韩制服一区| 一区二区三区四区视频| 综合日韩av| 亚洲欧美日本精品| 性国裸体高清亚洲| 亚洲精品美女久久| 激情视频网站在线播放色| 亚洲第一偷拍网| 超碰99在线| 国产亚洲福利一区| 老司机精品视频网| 久久国产精品电影| 欧美天堂影院| 国产精品电影一区| 久久久久久久久久久久久久久久久久 | 亚洲激情一区二区三区| 精品亚洲欧美一区| 亚洲乱码日产精品bd在线观看| 国产精品第一视频| 久久久久久久久久久91| 欧美性大战久久| h片在线观看网站| 大黄网站在线观看| 国产.精品.日韩.另类.中文.在线.播放 | 欧美日韩亚洲综合一区二区三区激情在线| 日本a视频在线观看| 国产亚洲激情| 色综合久久悠悠| 免费看男女www网站入口在线 | 欧美日韩国产综合视频在线| 91日韩在线专区| 日韩大胆视频| 国产精品高精视频免费| 国产校园另类小说区| 欧美aaaaaaa| 欧美日韩电影一区二区三区| 福利视频网站一区二区三区| 午夜欧美大片免费观看| 国产一区激情在线| 中文av在线播放| 国产偷国产偷亚洲清高网站 | 成人久久久精品乱码一区二区三区| 国产精品一区二区小说| 伊人激情综合网| 99视频一区二区| 91大神精品| 日韩中文在线字幕| 91精品视频网| 色琪琪久久se色| 你懂得网站在线| 国产精品传媒毛片三区| 色综合久久久久| 久久夜色精品| 成人国产精品一区二区网站| 亚洲黄色在线看| 国产精品卡一卡二卡三| 一区二区在线视频观看| 黑巨人与欧美精品一区| 国产精品一级久久久| 亚洲男人的天堂av| 国产成人精品999在线观看| jlzzjlzz欧美| 日韩国产欧美一区| 亚洲欧美日韩第一区| 成人三级在线视频| 久久亚洲精精品中文字幕| 中文字幕在线影视资源| 欧美 日韩 国产 在线观看| 精品久久久av| 久久女同性恋中文字幕| 亚洲欧美专区| 久久机这里只有精品| 中文字幕av亚洲精品一部二部| 四虎免费av| 亚洲乱码一区av黑人高潮| 我不卡手机影院| 激情六月丁香| 国产91在线播放精品91| 亚洲国产高清在线| 情se视频网在线观看| 欧美日韩成人黄色| 中文字幕的久久| 久久一卡二卡| 国产高清视频网站| 国产精品区一区二区三在线播放 | 日韩精品久久久久久久软件91| 在线免费毛片| 久久久免费视频网站| 一区国产精品视频| 2014亚洲片线观看视频免费| 日韩精品久久久久久久软件91| 国产精品久久久久久久小唯西川 | 亚洲一区二区三区乱码| 社区色欧美激情 | 欧美日韩精品一区二区| 北条麻妃一区二区三区| 久久中文字幕导航| h片在线观看网站| 亚洲精品无码专区在线播放| 美丽的小蜜桃4春潮| 国产第一页视频| 激情欧美一区二区三区| 亚洲精品电影在线观看| 伊人久久亚洲影院| 在线精品亚洲| 日韩网站在线| 999精品视频在线观看| 9999热视频在线观看| 免费在线看电影| 水中色av综合| 久久婷婷国产综合国色天香| 国产盗摄视频一区二区三区| 国产成人av电影在线观看| 久久综合色综合88| 国产成人综合网站| 国产午夜精品理论片a级大结局 | 日av在线播放| 亚洲视频精品在线观看| 蜜桃av在线免费观看| 国模大尺度私拍在线视频| 欧美精品一区二区三区涩爱蜜| 国产一级免费在线观看| 成人高清网站| 有色激情视频免费在线| 激情五月综合色婷婷一区二区 | 成视频在线免费观看| 能在线观看av网站| 国产亚洲依依| 欧美极度另类| 国产欧美日韩影院| 亚洲另类自拍| 每日更新成人在线视频| 日韩精品一区二区三区色欲av| 极品美女扒开粉嫩小泬| 国产精品夜夜夜爽张柏芝| 国产精品久久久久久av下载红粉| 欧洲精品在线观看| 在线日韩中文| 欧美成人黑人| 男女午夜刺激视频| 免费久久一级欧美特大黄| 亚洲欧美在线一区| 亚洲最新在线观看| 欧美变态挠脚心| 夜级特黄日本大片_在线| 在线免费一区| 国产91精品久久久久| 亚洲综合一二三区| 狠久久av成人天堂| 欧美人动性xxxxz0oz| 亚洲ai欧洲av| 2021久久精品国产99国产精品| 久久女同互慰一区二区三区| 色综合天天综合网中文字幕| 一区二区三区四区视频免费观看 | 色94色欧美sute亚洲13| 久久精品一偷一偷国产| 亚洲国产午夜伦理片大全在线观看网站 | 中文字幕在线观看网站| 日韩免费一级| 日韩精品电影在线观看|