您现在的位置是:热点 >>正文
在 Kubernetes 上部署一个深度学习模型
热点6625人已围观
简介...
了解如何使用 Kubermatic Kubernetes 平台来部署、扩展与管理图像识别预测的深度学习模型。
随着企业增加了对人工智能(AI)、机器学习(ML)与深度学习(DL)的使用,出现了一个关键问题:如何将机器学习的开发进行规模化与产业化?这些讨论经常聚焦于机器学习模型本身;然而,模型仅仅只是完整解决方案的其中一环。为了达到生产环境的应用和规模,模型的开发过程必须还包括一个可以说明开发前后关键活动以及可公用部署的可重复过程。
本文演示了如何使用 Kubermatic Kubernetes 平台 对图像识别预测的深度学习模型进行部署、扩展与管理。
Kubermatic Kubernetes 平台是一个生产级的开源 Kubernetes 集群管理工具,提供灵活性和自动化,与机器学习/深度学习工作流程整合,具有完整的集群生命周期管理。
开始
这个例子部署了一个用于图像识别的深度学习模型。它使用了 CIFAR-10 数据集,包含了 60,000 张分属 10 个类别的 32x32 彩色图,同时使用了 Apache MXNet 的 Gluon 与 NVIDIA GPU 进行加速计算。如果你希望使用 CIFAR-10 数据集的在 预训练模型,可以查阅其 入门指南。
使用训练集中的样本对模型训练 200 次,只要训练误差保持缓慢减少,就可以保证模型不会过拟合。下方图展示了训练的过程:
深度学习模型训练 loss 图
训练结束后,必须保存模型训练所得到的参数,以便稍后可以加载它们:
file_name = "net.params" net.save_parameters(file_name)
一旦你的模型训练好了,就可以用 Flask 服务器来封装它。下方的程序演示了如何接收请求中的一张图片作为参数,并在响应中返回模型的预测结果:
from gluoncv.model_zoo import get_model import matplotlib.pyplot as plt from mxnet import gluon, nd, image from mxnet.gluon.data.vision import&Kunbsp;transforms from gluoncv import utils from PIL import Image import io import flask app = flask.Flask(__name__) @app.route("/predict",methods=["POST"]) def predict(): if flask.request.method == "POST": if flask.request.files.get("img"):  be; img = Image.open(io.BytesIO(flask.request.files["img"].read())) transform_fn = transforms.Compose([ transforms.Resize(32), transforms.CenterCrop(32), rn transforms.ToTensor(), transforms.Normalize([0.4914, 0.4822, 0.4465], [0.2023, 0.1994, 0.2010])]) img = transform_fn(nd.array(img)) net = get_model('cifar_resnet20_v1', classes=10) &etnbsp; net.load_parameters('net.params') pred = net(img.expand_dims(axis=0)) class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer', &esnbsp; 'dog', 'frog', 'horse', 'ship', 'truck'] ind = nd.argmax(pred, axis=1).astype('int') prediction = 'The input picture is classified as [%s], with probability %.3f.'% &nbs 上p; (class_names[ind.asscalar()], nd.softmax(pred)[0][ind].asscalar()) return prediction if __name__ == '__main__': app.run(host='0.0.0.0') 容器化模型
在将模型部署到 Kubernetes 前,你需要先安装 Docker 并使用你的模型创建一个镜像。
下载、安装并启动 Docker:
sudo yum install -y yum-utils device-mapper-persisten部署t-data lvm2 sudo yum-config-manager --add-repo <https://download.docker.com/linux/centos/docker-ce.repo> sudo yum install docker-ce sudo systemctl start docker
创建一个你用来管理代码与依赖的文件夹:
mkdir kubermatic-dl cd kubermatic-dl
创建 requirements.txt 文件管理代码运行时需要的所有依赖:
flask gluoncv matplotlib mxnet requests Pillow
创建 Dockerfile,Docker 将根据这个文件创建镜像:
FROM python:3.6 WOR一个KDIR /app COPY requirements.txt /app RUN pip install -r ./requirements.txt COPY app.py /app CMD ["python", "app.py"]
这个 Dockerfile 主要可以分为三个部分。首先,Docker 会下载 Python 的基础镜像。然后,Docker 会使用 Python 的包管理工具 pip 安装 requirements.txt 记录的包。最后,Docker 会通过执行 python app.py 来运行你的脚本。
构建 Docker 容器:
sudo docker build -t kubermatic-dl:latest .
这条命令使用 kubermatic-dl 镜像为你当前工作目录的代码创建了一个容器。
使用
sudo docker run&nbs深度p;-d -p 5000:5000 kubermatic-dl
命令检查你的容器可以在你的主机上正常运行。
使用
sudo docker ps -a
命令查看你本地容器的运行状态:
查看容器的运行状态
将你的模型上传到 Docker Hub
在向 Kubernetes 上部署模型前,你的镜像首先需要是公开可用的。你可以通过将你的模型上传到 Docker Hub 来将它公开。(如果你没有 Docker Hub 的账号,你需要先创建一个)
在终端中登录 Docker Hub 账号:
sudo docker login
给你的镜像打上标签,这样你的模型上传到 Docker Hub 后也能拥有版本信息:
sudo docker tag / sudo docker push /
给镜像打上 tag
使用
sudo docker images
命令检查你的镜像的 ID。
部署你的模型到 Kubernete学习s 集群
首先在 Kubermatic Kubernetes 平台创建一个项目, 然后根据 快速开始 创建一个 Kubernetes 集群。
创建一个 Kubernetes 集群
下载用于访问你的集群的 kubeconfig,将它放置在下载目录中,并记得设置合适的环境变量,使得你的环境能找到它:
Kubernetes 集群示例
使用 kubectl 命令检查集群信息,例如,需要检查 kube-system 是否在你的集群正常启动了就可以使用命令 kubectl cluster-info
查看集群信息
为了在集群中运行容器,你需要创建一个部署用的配置文件(deployment.yaml),再运行 apply 命令将其应用于集群中:
apiVersion: apps/v1 kind: Deployment metadata: name: kubermatic-dl-deployment spec: selector: matchLa模型bels: app: kubermatic-dl replicas: 3 template: metadata: labels: app: kubermatic-dl spec: containers: - name: kubermatic-dl  在 ; image: kubermatic00/kubermatic-dl:latest imagePullPolicy: Always ports: - containerPort: 8080 kubectl apply -f deployment.yaml`
为了将你的部署开放到公网环境,你需要一个能够给你的容器创建外部可达 IP 地址的服务:
kubectl expose deployment kubermatic-dl-deployment --type=LoadBalancer --port 80 --targetKu-port 5000`
就快大功告成了!首先检查你布署的服务的状态,然后通过 IP 请求的你图像识别 API:
kubectl get service
获取请求图像识别 API 的 IP 地址
最后根据你的外部 IP 使用以下两张图片对你的图像识别服务进行测试:
马
狗
测试 API 总结
在这篇教程中,你可以创建一个深度学习模型,并且使用 Flask 提供 REST API 服务。它介绍了如何将应用放在 Docker 容器中,如何将这个镜像上传到 Docker Hub 中,以及如何使用 Kubernetes 部署你的服务。只需几个简单的命令,你就可以使用 Kubermatic Kubernetes 平台部署该应用程序,并且开放服务给别人使用。
Tags:
相关文章
标签: 英伟达 Vera CPU 黄仁勋 GTC2026
热点云梦级3月17日云梦级消息,3 月 17 日在美国加州圣何塞举行的 2026 年 GTC 大会上,英伟达CEO黄仁勋公布了全新 88 核 Vera 数据中心 CPU 的详细参数,声称是全球首款专为智能...
【热点】
阅读更多标签: 卓驭科技 大疆车载 Pre-IPO 港股上市
热点云梦级3月18日云梦级消息,据亿欧汽车获悉,卓驭科技正在进行Pre-IPO轮融资,规模20亿元,投前估值约125亿元,并有计划年内在港股上市。 无论IPO是否已经正式启动,卓驭新一轮的融资已在路上,待...
【热点】
阅读更多OpenAI 估值飙升至 5000 亿美元,成功出售103亿美元的二级股票
热点据 CNBC 报道,OpenAI 的估值在今天凌晨达到了5000亿美元,并成功出售了103亿美元的二级股票。这一交易吸引了多家知名投资机构的参与,标志着 OpenAI 在资本市场上的强劲表现。 消息来...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.kubb-tool.bfs.admin.ch/en/search?action=CHECK&q=谷歌快排操作流程【tg:seogoogle987】,ZDH
- https://www.posten-portal.de/search?query=谷歌快排操作流程【tg:seogoogle987】,Ydp
- https://www.oprny.com/search.php?search_query=谷歌快排操作流程【tg:seogoogle987】,gQm
- https://www.rhymezone.com/r/rhyme.cgi?typeofrhyme=oldrel&loc=nojs&Word=谷歌快排操作流程【tg:seogoogle987】,MTd
- https://www.whatsonstage.com/search?cat=64&term=谷歌快排操作流程【tg:seogoogle987】,rtl
- https://www.temu.com/search_result.html?search_key=谷歌快排操作流程【tg:seogoogle987】kRh
- https://www.tcv.org.uk/search/谷歌快排操作流程【tg:seogoogle987】,7XD
- https://www.kingston.gov.uk/site-search/results/?q=谷歌快排操作流程【tg:seogoogle987】,a51
- https://www.qidulp.com/search?query=谷歌快排操作流程【tg:seogoogle987】,km7
- https://www.duksung.ac.kr/search/front/Search.jsp?qt=谷歌快排操作流程【tg:seogoogle987】u8t
- https://www.remit.co.jp/vi/?s=谷歌快排操作流程【tg:seogoogle987】,7v4
- https://www.resilienz-akademie.com/?cat=71&s=谷歌快排操作流程【tg:seogoogle987】,CmM
- https://www.paxnet.co.kr/search/jongmok?kwd=谷歌快排操作流程【tg:seogoogle987】mPX
- https://www.southmeadows.co.uk/2019/07/?s=谷歌快排操作流程【tg:seogoogle987】,lgC
- https://www.unclefossil.com/search/谷歌快排操作流程【tg:seogoogle987】,33O
- https://www.symatoys.com/search.html?ID=UyMD6aO58bPrJvQAB1I0N69KzJBZeNPC&keyword=谷歌快排操作流程【tg:seogoogle987】,bqh
- https://www.lechzuers.com/de/search?cat=163&q=谷歌快排操作流程【tg:seogoogle987】,dgs
- https://www.remit.co.jp/vi/?s=谷歌快排操作流程【tg:seogoogle987】hp6
- https://www.livehindustan.com/tags/谷歌快排操作流程【tg:seogoogle987】,4Fp
- https://www.nslcleaders.org/?s=谷歌快排操作流程【tg:seogoogle987】,duT
- https://www.lyrics.com/lyrics/谷歌快排操作流程【tg:seogoogle987】,HUD
- https://www.zutari.com/?s=谷歌快排操作流程【tg:seogoogle987】,20B
- https://www.springfieldlibrary.org/library/?s=谷歌快排操作流程【tg:seogoogle987】,VwB
- https://www.sic-info.org/?s=谷歌快排操作流程【tg:seogoogle987】,wz0
- https://www.hanbat.ac.kr/search/front/Search.jsp?qt=谷歌快排操作流程【tg:seogoogle987】uTs
- https://wwwcp.umes.edu/search/谷歌快排操作流程【tg:seogoogle987】,jw2
- https://www.lgnewsroom.com/search/谷歌快排操作流程【tg:seogoogle987】,2gO
- https://www.xvideos.com/tags/谷歌快排操作流程【tg:seogoogle987】,a5I
- https://www.paspaley.com/catalogsearch/result/?action=QUERY&q=谷歌快排操作流程【tg:seogoogle987】,J8V
- https://www.merchbar.com/search?q=谷歌快排操作流程【tg:seogoogle987】,olg
- https://www.polar-tech.com/?action=QUERY&s=谷歌快排操作流程【tg:seogoogle987】,gfw
- https://www.wellbees.com/index.php/catalogsearch/result/index/?q=谷歌快排操作流程【tg:seogoogle987】,XsG
- https://www.nctsn.org/search?cat=191&query=谷歌快排操作流程【tg:seogoogle987】,pS2
- https://www.shopping.com/search.html?keyword=谷歌快排操作流程【tg:seogoogle987】,ZbG
- https://www.polliwogs.com/search/谷歌快排操作流程【tg:seogoogle987】,jd9
- https://www.remit.co.jp/ne/?s=谷歌快排操作流程【tg:seogoogle987】,mux
- https://www.ncetm.org.uk/search?action=CHECK&q=谷歌快排操作流程【tg:seogoogle987】,eOu
- https://www.pierreherme.com/catalogsearch/result/?q=谷歌快排操作流程【tg:seogoogle987】,yZu
- https://www.mesec.cz/vyhledavani/?qs=谷歌快排操作流程【tg:seogoogle987】,Tdh
- https://www.takachi-enclosure.com/search?eqYB=gnI31Ou&text=谷歌快排操作流程【tg:seogoogle987】,hGW
- https://www.kaskus.co.id/search?q=谷歌快排操作流程【tg:seogoogle987】,42s
- https://www.remit.co.jp/zh/?s=谷歌快排操作流程【tg:seogoogle987】,kas
- https://www.therapeuticassociates.com/?cat=5&s=谷歌快排操作流程【tg:seogoogle987】,hvH
- https://www.sic-info.org/en/?s=谷歌快排操作流程【tg:seogoogle987】,Bo6
- https://www.pixiv.net/tags/谷歌快排操作流程【tg:seogoogle987】,DyV
- https://www.lenovo.com/gb/en/search?action=SEARCH&text=谷歌快排操作流程【tg:seogoogle987】,D5D
- https://www.manga-news.com/index.php/recherche/?q=谷歌快排操作流程【tg:seogoogle987】,l0w
- https://www.kaiyueleather.com/search/谷歌快排操作流程【tg:seogoogle987】,8EZ
- https://www.wilsonart.com/catalogsearch/result/?action=CHECK&q=谷歌快排操作流程【tg:seogoogle987】,DFM
- https://www.mygrandma.com/Items.aspx?search=谷歌快排操作流程【tg:seogoogle987】,uEw