当前位置: 首页 > 科技观察

创建容器化机器学习模型_0

时间:2023-03-13 22:22:35 科技观察

数据科学家创建机器学习模型后,他们必须将其部署到生产环境中。要在不同的基础架构上运行它,使用容器并通过RESTAPI公开模型是部署机器学习模型的常用方法。本文演示了如何在Podman容器中使用Connexion以使用RESTAPI启动TensorFlow机器学习模型。准备工作首先,使用以下命令安装Podman:sudodnf-yinstallpodman接下来,为容器创建一个新文件夹并切换到该目录。mkdirdeployment_container&&cddeployment_container用于TensorFlow模型的RESTAPI下一步是为机器学习模型创建RESTAPI。这个github存储库包含一个预训练模型,以及使RESTAPI工作的设置。使用以下命令将其克隆到deployment_container目录中:gitclonehttps://github.com/svenboesiger/titanic_tf_ml_model.gitprediction.py和ml_model/prediction.py可以进行Tensorflow预测,20x20x20神经网络的权重位于文件夹ml_model/。swagger.yamlswagger.yaml使用Swagger规范定义了Connexion库的API。此文件包含您的服务器提供输入参数验证、输出响应数据验证和URL端点定义所需的所有信息。此外,Connexion还将为您提供一个简单但有用的单页Web应用程序,它演示了如何使用Javascript调用API和更新DOM。招摇:“2.0”信息:描述:这是与我们的服务器代码版本一起使用的招摇文件:“1.0.0”标题:TensorflowPodmanArticleconsumes:-“application/json”产生:-“application/json”basePath:“/"paths:/survival_probability:post:operationId:"prediction.post"tags:-"Prediction"summary:"服务端应用提供的预测数据结构"description:"找回泰坦尼克号灾难的幸存几率"parameters:-in:bodyname:passengerrequired:trueschema:$ref:'#/definitions/PredictionPost'responses:'201':description:'SurvivalprobabilityofanindividualTitanicpassenger'definitions:PredictionPost:type:objectserver.py和要求。txtserver.py确定了启动Connexion服务器的入口点。importconnexionapp=connexion.App(__name__,specification_dir='./')app.add_api('swagger.yaml')if__name__=='__main__':app.run(debug=True)requirements.txt定义需要运行的程序蟒蛇包。connexiontensorflowpandas容器化!为了让Podman构建镜像,在上面准备步骤中创建的deployment_container目录中创建一个名为Dockerfile的新文件:FROMfedora:28#FileAuthor/MaintainerMAINTAINERSvenBoesiger#UpdatethesourcesRUNdnf-yupdate--refresh#安装额外的依赖RUNdnf-yinstalllibstdc++RUNdnf-yautoremove#复制容器里面的application文件夹ADD/titanic_tf_ml_model/titanic_tf_ml_model#获取pip下载安装requirements:RUNpip3install_f/ti/requirements.txt#ExposeportsEXPOSE5000#设置CMD执行的默认目录WORKDIR/titanic_tf_ml_model#设置创建新容器时默认执行的命令#CMDpython3server.py接下来使用以下命令构建容器镜像:podmanbuild-tml_deployment.运行容器构建并准备好容器镜像后,您可以使用以下命令在本地运行它:podmanrun-p5000:5000ml_deployment在您的网络浏览器中输入http://0.0.0.0:5000/ui以访问Swagger/ConnexionUI和测试模型:当然,您现在也可以通过RESTAPI访问应用程序中的模型。