当前位置: 首页 > news >正文

郑州外贸网站建设商家云南网络营销公司

郑州外贸网站建设商家,云南网络营销公司,国内最新新闻热点事件摘抄,wordpress插件头像文章目录前言一、数据集二、训练 Scikit-learn 模型三、基于MLSever构建Scikit-learn服务四、测试模型五、训练 XGBoost 模型六、服务多个模型七、测试多个模型的准确性总结参考前言 在过去我们训练模型#xff0c;往往通过编写flask代码或者容器化我们的模型并在docker中运行… 文章目录前言一、数据集二、训练 Scikit-learn 模型三、基于MLSever构建Scikit-learn服务四、测试模型五、训练 XGBoost 模型六、服务多个模型七、测试多个模型的准确性总结参考前言 在过去我们训练模型往往通过编写flask代码或者容器化我们的模型并在docker中运行。这篇文章中我们将分享如何基于mlserver来搭建Web服务。mlserver是基于 python的推理服务器可以通过简单的代码实现python web服务但是它的真正优点在于它是一个为生产环境设计的高性能服务器。 一、数据集 本博客通过使用几个图像模型作为示例介绍如何使用 MLServer我们要使用的数据集是Fashion MNIST 数据集。它包含 70,000 张灰度 28x28 像素的服装图像分为 10 个不同的类别上衣、连衣裙、外套、裤子等。 二、训练 Scikit-learn 模型 首先我们使用scikit-learn框架训练支持向量机 (SVM) 模型。然后我们将模型保存到一个名为Fashion-MNIST.joblib文件中。 import pandas as pd from sklearn import svm import time import joblib#Load Training Data train pd.read_csv(../../data/fashion-mnist_train.csv, header0) y_train train[label] X_train train.drop([label], axis1) classifier svm.SVC(kernelpoly, degree4, gamma0.1)#Train Model start time.time() classifier.fit(X_train.values, y_train.values) end time.time() exec_time end-start print(fExecution time: {exec_time} seconds)#Save Model joblib.dump(classifier, Fashion-MNIST.joblib)注意SVM 算法不是特别适合大型数据集因为它具有二次性质。根据使用的硬件本示例中的模型将需要几分钟时间进行训练。 三、基于MLSever构建Scikit-learn服务 好的所以我们现在有一个保存的模型文件Fashion-MNIST.joblib。让我们来看看我们如何使用 MLServer 来提供服务… 首先我们需要安装 MLServer。 pip install mlserver 额外的运行时是可选的但在服务模型时让生活变得非常轻松我们也会安装 Scikit-Learn 和 XGBoost 的 pip install mlserver-sklearn mlserver-xgboost 你可以在此处找到有关所有推理运行时的详细信息完成后我们需要做的就是添加两个配置文件 settings.json- 这包含服务器本身的配置。model-settings.json- 顾名思义此文件包含我们要运行的模型的配置。对于我们的settings.json文件只需定义一个参数就足够了 {debug: true }该model-settings.json文件需要更多信息因为它需要了解我们尝试服务的模型 {name: fashion-sklearn,implementation: mlserver_sklearn.SKLearnModel,parameters: {uri: ./Fashion_MNIST.joblib,version: v1} }name参数为 MLServer 提供了一个唯一标识符这在为多个模型提供服务时特别有用我们稍后会谈到。定义implementation要使用的预建服务器如果有它与用于训练模型的机器学习框架紧密耦合。在我们的例子中我们使用 scikit-learn 训练了模型因此我们将使用 MLServer 的 scikit-learn 实现。对于模型parameters我们只需要提供模型文件的位置以及版本号。 就是这样两个小配置文件我们准备好使用以下命令为我们的模型提供服务 mlserver start . 我们现在已经在本地服务器上运行了我们的模型。它现在已准备好接受通过 HTTP 和 gRPC分别为默认端口8080和8081的请求。 四、测试模型 现在我们的模型已经启动并运行了。让我们发送一些请求以查看它的运行情况。 要对我们的模型进行预测我们需要向以下 URL 发送 POST 请求 http://localhost:8080/v2/models/MODEL_NAME/versions//infer 这意味着要访问我们之前训练的 scikit-learn 模型我们需要用fashion-sklearn替换MODEL_NAME用 v1替换VERSION。 下面的代码显示了如何导入测试数据向模型服务器发出请求然后将结果与实际标签进行比较 import pandas as pd import requests#Import test data, grab the first row and corresponding label test pd.read_csv(../../data/fashion-mnist_test.csv, header0) y_test test[label][0:1] X_test test.drop([label],axis1)[0:1]#Prediction request parameters inference_request {inputs: [{name: predict,shape: X_test.shape,datatype: FP64,data: X_test.values.tolist()}] } endpoint http://localhost:8080/v2/models/fashion-sklearn/versions/v1/infer#Make request and print response response requests.post(endpoint, jsoninference_request) print(response.text) print(y_test.values) 运行test.py上面的代码时我们从 MLServer 得到以下响应 {model_name: fashion-sklearn,model_version: v1,id: 31c3fa70-2e56-49b1-bcec-294452dbe73c,parameters: null,outputs: [{name: predict,shape: [1],datatype: INT64,parameters: null,data: [0]}] } 你会注意到 MLServer 已生成一个请求 ID并自动添加了有关用于满足我们请求的模型和版本的元数据。一旦我们的模型投入生产捕获这种元数据就非常重要它允许我们记录每个请求以用于审计和故障排除目的。 你可能还会注意到 MLServer已返回一个数组outputs。在我们的请求中我们只发送了一行数据但MLServer也处理批量请求并将它们一起返回。你甚至可以使用一种称为自适应批处理的技术来优化在生产环境中处理多个请求的方式。 在我们上面的示例中可以找到模型的预测其中outputs[0].data显示模型已将此样本标记为类别0值 0 对应于类别t-shirt/top。该样本的真实标签也是0所以模型得到了正确的预测 五、训练 XGBoost 模型 现在我们已经了解了如何使用 MLServer 创建和提供单个模型让我们来看看我们如何处理在不同框架中训练的多个模型。 我们将使用相同的 Fashion MNIST 数据集但这次我们将训练XGBoost模型。 import pandas as pd import xgboost as xgb import time#Load Training Data train pd.read_csv(../../data/fashion-mnist_train.csv, header0) y_train train[label] X_train train.drop([label], axis1) dtrain xgb.DMatrix(X_train.values, labely_train.values)#Train Model params {max_depth: 5,eta: 0.3,verbosity: 1,objective: multi:softmax,num_class : 10 } num_round 50start time.time() bstmodel xgb.train(params, dtrain, num_round, evals[(dtrain, label)], verbose_eval10) end time.time() exec_time end-start print(fExecution time: {exec_time} seconds)#Save Model bstmodel.save_model(Fashion_MNIST.json)上面用于训练 XGBoost 模型的代码与我们之前用于训练 scikit-learn 模型的代码类似但这次我们的模型以 XGBoost 兼容格式保存为Fashion_MNIST.json。 六、服务多个模型 MLServer 的一个很酷的事情是它支持多模型服务。这意味着您不必为要部署的每个 ML 模型创建或运行新服务器。使用我们上面构建的模型我们将使用此功能同时为它们提供服务。 当 MLServer 启动时它将在目录和任何子目录中搜索model-settings.json文件。如果您有多个model-settings.json文件那么它会自动为所有文件提供服务。 settings.json注意您仍然只需要根目录中的一个服务器配置文件 这是我的目录结构的细分以供参考 . ├── data │ ├── fashion-mnist_test.csv │ └── fashion-mnist_train.csv ├── models │ ├── sklearn │ │ ├── Fashion_MNIST.joblib │ │ ├── model-settings.json │ │ ├── test.py │ │ └── train.py │ └── xgboost │ ├── Fashion_MNIST.json │ ├── model-settings.json │ ├── test.py │ └── train.py ├── README.md ├── settings.json └── test_models.py 请注意有两个model-settings.json文件 - 一个用于 scikit-learn 模型一个用于 XGBoost 模型。 我们现在可以运行mlserver start .它将开始处理两个模型的请求。 [mlserver] INFO - Loaded model fashion-sklearn succesfully. [mlserver] INFO - Loaded model fashion-xgboost succesfully.七、测试多个模型的准确性 现在这两个模型都在 MLServer 上启动并运行我们可以使用测试集中的样本来验证我们每个模型的准确性。 以下代码向每个模型发送一个批处理请求包含完整的测试集然后将收到的预测与真实标签进行比较。在整个测试集上执行此操作可以衡量每个模型的准确性。 import pandas as pd import requests import json#Import the test data and split the data from the labels test pd.read_csv(./data/fashion-mnist_test.csv, header0) y_test test[label] X_test test.drop([label],axis1)#Build the inference request inference_request {inputs: [{name: predict,shape: X_test.shape,datatype: FP64,data: X_test.values.tolist()}] }#Send the prediction request to the relevant model, compare responses to training labels and calculate accuracy def infer(model_name, version):endpoint fhttp://localhost:8080/v2/models/{model_name}/versions/{version}/inferresponse requests.post(endpoint, jsoninference_request)#calculate accuracycorrect 0for i, prediction in enumerate(json.loads(response.text)[outputs][0][data]):if y_test[i] prediction:correct 1accuracy correct / len(y_test)print(fModel Accuracy for {model_name}: {accuracy})infer(fashion-xgboost, v1) infer(fashion-sklearn, v1) 结果表明XGBoost 模型略优于 SVM scikit-learn 模型 Model Accuracy for fashion-xgboost: 0.8953 Model Accuracy for fashion-sklearn: 0.864 总结 希望现在你已经了解使用MLServer为模型提供服务是多么容易。 参考 https://dev.to/ukcloudman/serving-python-machine-learning-models-with-ease-37kh
http://www.hkea.cn/news/14267285/

相关文章:

  • 福州网站设计大概费用优秀网站的特点
  • 网站ui设计基础wordpress添加头像
  • 企业手机网站建设策划方案营销顾问公司
  • 怎么seo网站推广免费域名注册平台永久
  • 没注册可以做网站吗企业网站制作 西安
  • 济南建网站公司价格抖音营销推广
  • 织梦模板怎么验证网站重庆多功能网站建设
  • 江苏城乡与住房建设部网站美发培训网站
  • 网站优化具体怎么做长春建站模板源码
  • 做网站域名重要吗医药网站建设中图片
  • 北京南站地铁几号线重庆快速网站推广
  • 建设网站英语成免费crm破解版
  • 直播一级a做爰片免费网站阿勒泰网站建设
  • 做网站流程天象集团ui培训
  • 飞色网站商城怎么做网站开发z亿玛酷1流量订制
  • 哪一个网站可以做任务拿佣金推广文章
  • 网站建设氺首选金手指14深圳市保障性住房轮候申请
  • 阿里巴巴做网站难吗wordpress显示文章摘要
  • 网站正在建设中是什么意思贵阳网站建设方案维护
  • 网站开发周期一个人做网站设计兼职
  • 做网站的销售好做吗建设部网站撤销注册资质的都是公职人员吗
  • 网站设计开发世界500强企业中国有哪些
  • 优酷土豆网站建设百度知道登录
  • 建设部四库一平台查询网站百度seo综合查询
  • 深圳专业的免费建站wordpress 炫酷主题
  • 一个网站多个数据库wordpress用插件注册
  • 行业网站源码在深圳找工作上什么网
  • 黄石网站建设方案汕头网站建设推广哪家好
  • 淄博电商网站建设把自己做的网站传到网上
  • 能打开各种网站的浏览器和平手机网站建设