专栏首页机器学习AI算法工程如何将pytorch检测模型通过docker部署到服务器

如何将pytorch检测模型通过docker部署到服务器

本文记录下如何使用docker部署pytorch文本检测模型到服务器,

。镜像文件也上传到docker hub了,可以一步步运行起来,不过需要先安装好docker。docker的安装可参考官方文档。https://docs.docker.com/docker-for-windows/install/

docker制作深度学习镜像(以windows环境下为例)

搭建服务端API

为了便于测试,可以先使用Flask搭建一个简易版本文本检测服务器,服务端创建接口部分代码如下:

  1. 其中主要的是detection函数,接收的图像为numpy array格式,通道为BGR;输出为检测的文本框,shape为(#boxes, 8),8代表四个点的横纵坐标,从左上角开始顺时针排序。
  2. PAGE是一个简单的网页,创建表单。可在浏览器中进行验证,也可以通过脚本验证,后面详述。

创建镜像

需要先编写Dockerfile文件:

  1. gaolijun/pytorch:1.2-cuda10.0-cudnn7-cv-flask-py3.6 是另一个自定义创建的镜像,安装的Python版本为3.6,pytorch版本为1.2,cuda版本为10.0;并且已经安装好了opencv和flask,以及其他一些常用库,比如numpy等等,该镜像做了许多精简,保证了搭建pytorch和flask服务所需的功能,文件并不很大。为了省事儿,直接在这上面搭建几层。
  2. 设置docker开放的端口为5000,后面可以在运行的主机上进行映射。
  3. 然后将需要的文本拷贝进去,其中detection_api提供上面的detection函数,可以看成黑盒子,输入是图像,输出为该图像上检测得到的所有文本框。
  4. 安装额外的依赖包:Shapely和pyclipper,这在 gaolijun/pytorch:1.2-cuda10.0-cudnn7-cv-flask-py3.6 中没有安装,so...
  5. 在容器中运行镜像的时候就运行检测api脚本。

写好了Dockerfile,在DockerFile所在目录运行:

docker build -t detector:v1.0 .

镜像名称为detector,给个标签:v1.0,便于跟踪管理。

拉取镜像

我已经将创建的镜像上传到docker hub了,可以拉取下来:

docker pull laygin/detector

然后查看下全部的镜像:

运行docker

docker run -p 3223:5000 -d --name detector detector:v1.0

  1. -p: 主机端口到docker容器端口的映射。所以,只要愿意,主机上可以运行多个docker容器,指定不同的端口即可。
  2. -d: docker容器在后台运行
  3. --name: docker 容器名称
  4. 后面跟上创建的镜像,即在容器detector中运行的镜像detector:v1.0
  5. 或许需要 docker container ls 来查看它
  6. 或许还需要 docker stop detector 来停止它
  7. 或许也需要 docker rm detector 来移除它,。。。。。如果没有停掉而想直接移除或许还不行,那就加上 --force/-f 强制操作吧

验证

文本检测服务已经运行起来了,要怎样才知道有没有运行成功呢?这里通过两种方式来验证一下。

1. 浏览器

提供了简易的web page,直接在浏览器中输入serverIP:3223/detector,其中serverIP为运行docker的服务器IP地址。

点击Browse选择图像,然后点击detect进行检测,得到如下结果:

2. python脚本

通过脚本验证是最常用的方式了,这里写了一个简单的demo脚本

结果如图所示:

原文地址:https://zhuanlan.zhihu.com/p/159191983


本文分享自微信公众号 - 机器学习AI算法工程(datayx)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何将PyTorch Lighting模型部署到生产服务中

    纵观机器学习领域,一个主要趋势是专注于将软件工程原理应用于机器学习的项目。例如,Cortex重新创造了部署serverless功能的体验,但使用了推理管道。类似...

    磐创AI
  • 模型web迁移延时太长,机器学习神器Cortex 能一键解决吗?

    Cortex作为一款为生产Web服务的工具,能够和AWS服务结合起来,重点解决jupyter notebook到生产的缺乏基础框架的问题。

    AI科技评论
  • PyTorch 1.5 发布,与 AWS 合作 TorchServe

    内容概要:近日 PyTorch 发布了 1.5 版本的更新,作为越来越受欢迎的机器学习框架,PyTorch 本次也带来了大的功能升级。此外, Facebook ...

    HyperAI超神经
  • 如何将PyTorch Lightning模型部署到生产中

    纵观机器学习领域,主要趋势之一是专注于将软件工程原理应用于机器学习的项目激增。 例如,Cortex再现了部署无服务器功能但具有推理管道的体验。类似地,DVC实现...

    计算机与AI
  • 这些项目,入选了 2019 年最佳开源软件榜单!

    InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技媒体品牌,每年 InfoWorld 都会根据软件对开源界的贡献,以及在业界的影响力评选出当年...

    GitHubDaily
  • 使用WebAssembly提高模型部署的速度和可移植性

    在最近几个月中,我们已经帮助许多公司在各种环境中部署其AI / ML模型。我们为医疗行业的模型部署做出了贡献,在过去的几个月中,我们已经帮助多家公司将经过训练的...

    deephub
  • 针对复杂图像分类场景:使用物体探测(第一部分)

    TLDR; 本系列是基于检测以下现实生活代码记录中复杂策略的工作。该系列的代码可以在原文找到。

    AI研习社
  • 手把手:我的深度学习模型训练好了,然后要做啥?

    大数据文摘
  • 不要只关注算法与模型,这里有份产品级深度学习开发指南

    众所周知,深度学习模型仅仅只是构建 AI 产品的重要步骤,但并不是全部。一个互联网产品(如 APP)想要集成深度学习能力,往往还需要走完很多设计、开发和测试方面...

    机器之心
  • 在scf上部署pytorch的炼丹模型

    在scf的使用过程中,我们收到了不少关于如何部署pytorch到scf,为啥numpy版本不对等等问题,这里让我们来一步一步训练模型并将模型部署到scf函数。我...

    markzhang12
  • PyTorch还是TensorFlow?这有一份新手指南

    问耕 编译整理 量子位 出品 | 公众号 QbitAI 前几天,量子位发过一篇《忽悠VC指南》。其中有一条建议是,当你假装AI专家时,最好别谈众人皆知的Tens...

    量子位
  • PyTorch和TensorFlow哪家强:九项对比读懂各自长项短板

    近日,斯坦福大学计算机科学系博士生 Awni Hannun 也发表了一篇文章,谈了自己对 PyTorch 和 TensorFlow 这两大明星框架的心得体验,并...

    小莹莹
  • 深度 | PyTorch和TensorFlow哪家强:九项对比读懂各自长项短板

    选自GitHub 作者:Awni Hannun 机器之心编译 参与:Panda 现在是各种机器学习框架群雄争霸的时代,各种各样的比较文章也层出不穷。近日,斯坦福...

    机器之心
  • 业界 | 艾伦AI研究院发布AllenNLP:基于PyTorch的NLP工具包

    选自GitHub 机器之心编译 参与:李泽南、黄小天 AllenNLP 可以让你轻松地设计和评估几乎所有 NLP 问题上最新的深度学习模型,并同基础设施一起让这...

    机器之心
  • 开发 | 用PyTorch还是TensorFlow?斯坦福大学CS博士生带来全面解答

    AI 科技评论按:关于深度学习的框架之争一直没有停止过。PyTorch,TensorFlow,Caffe还是Keras ?近日, 斯坦福大学计算机科学博士生Aw...

    AI科技评论
  • Facebook万字长文:AI模型全部迁移至PyTorch框架

    PyTorch自2017年推出以来,就迅速占领GitHub热度榜榜首,一度有赶超Tensorflow的趋势。

    代码医生工作室
  • 【从零开始学深度学习编译器】一,深度学习编译器及TVM 介绍

    大家好呀,在过去的半年到一年时间里,我分享了一些算法解读,算法优化,模型转换相关的一些文章。这篇文章是自己开启学习深度学习编译器的第一篇文章,后续也会努力更新这...

    BBuf
  • 腾讯开源TurboTransformers,推理加速性能超越TensorRT等主流优化引擎

    在自然语言处理领域,以 BERT 为代表的 Transformer 神经网络模型是近年来最重要的模型创新,为诸如阅读理解、文章摘要、语义分类、同义改写等 NLP...

    机器之心
  • Lyft 如何使用 PyTorch 来驱动无人驾驶汽车

    Lyft 的使命是用世界上最好的交通工具改善人们的生活。我们相信,在未来,无人驾驶汽车将使交通更加安全,人人都更加方便。这就是为什么 Lyft 的无人驾驶部门 ...

    McGL

扫码关注云+社区

领取腾讯云代金券