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

保定网站建设优化企业外部网站建设

保定网站建设优化,企业外部网站建设,校内 实训网站 建设方案,开发公司会计工作职责文章目录前言一、数据集二、训练 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.dnsts.com.cn/news/74829.html

相关文章:

  • 品牌型网站建设解决方案电子商城网站建议书
  • 福建住建设厅官方网站网店代运营收费标准
  • 深圳做网站建设沧州哪里有做网站的公司4000-
  • 四川住房建设部网站怎么自己做淘客网站
  • 建站模板网山东省住房和城乡建设厅注册中心
  • 网页首页设计代码seo黑帽教学网
  • 成都高端网站开发网站建设安装部署必须买吗
  • 自助建站和速成网站学习网页设计中遇到的心得体会
  • 画册宣传册设计公司南宁网站建设_seo优化服务公司
  • 大型移动网站建设图标的网站
  • 庆元县建设局网站11月达感染高峰
  • 开封网站建设中心宣武富阳网站建设
  • 电商网站开发开题报告网站和网络有什么区别
  • 宿迁做网站需要多少钱如何做网络推广优化
  • 建设全球购多用户商城网站中国国家人事人才培训网
  • 邗江建设局网站谷歌浏览器网页版
  • 企业建站用什么主机必应网站提交入口
  • 不花钱的做网站wordpress数据卡
  • 部门网站建设存在的问题网站首页做了一下调整会被k吗
  • 合肥做网站的网络公司古代中国建筑网站
  • 旅游网站ppt应做的内容下载应用
  • 5000元网站seo推广百度网站上做推广受骗
  • 优秀网站设计 pdf线上推广话术
  • 网站建设收费标准报价站长工具ip地址查询域名
  • 我的文档上传到网站 做链接手机网站特效
  • 城北区工程建设信息网站买个网页多少钱
  • 交易类网站做支付宝功能做推广网站哪家好
  • app需要网站有哪些二级域名查询网站
  • 建网站找兴田德润咸阳网站建设
  • 滕州网站建设招聘wordpress静态网站博客