★★★ 本文源自AlStudio社区精品项目,【点击此处】查看更多精品内容 >>>

一、项目背景

Docker容器化技术可以将推理模型连同环境一起打包。开发者通过Docker进行模型部署时不需要安装各种包或者项目所需环境,十分方便地构建一个包含已训练的深度学习模型的镜像,直接运行容器就可得到推理的结果。本文利用Docker部署paddledetection训练的模型。实现在Linux环境下对图像一键化推理。

二、完成paddledetection的推理过程

2.1 参照paddledetection官方文档,在训练完成后生成推理模型文件,主要包含四个部分:

2.2利用FastDeploy在本地python端进行部署并CPU推理

这个项目利用PaddleDetection在自制数据集上训练的PPYOLOE模型进行表面裂纹检测。

具体地,在构建容器时会执行ppyoloe_models.py文件,读取宿主机data/images文件夹下图片,通过训练好的PPYOLOE网络进行预测。

预测结果保存在宿主机data/images下。

在本地python端得到的效果图如下:

三、Centos7安装Docker

yum -y install docker-ce docker-ce-cli contained.io

在完成安装后,执行下面命令,以确保安装成功:

docker run hello-world

四、编写DockerFile

Docker镜像的制作由Dockerfile文件来指定具体操作。Dockerfile可以理解为一种配置文件,用来告诉在制作镜像时应该执行哪些操作。有了Dockerfile之后,就可以利用build命令构建镜像

FROM registry.baidubce.com/paddlepaddle/paddle:2.4.1

WORKDIR /docker_detection

COPY . /docker_detection

RUN pip install -r requirements.txt

CMD [“python”, “ppyoloe_models.py”]

Dockerfile的第1行表明是基于paddlepaddle/paddle:2.4.1的docker镜像来制作,相当在这个镜像的基础上做了扩展来形成我们自己的镜像,其中registry.baidubce.com/paddlepaddle/paddle 表示docker镜像名,docker镜像的tag为2.4.1;

第2行表示该镜像的工作目录;

第3行表示将当前文件夹下的所有文件(docker_paddledet文件夹)copy到docker镜像中的目录/docker_detection目录下;

第4行表示在docker镜像中使用pip安装所有依赖库;

第5行表示当容器(container)运行时默认执行的命令。

五、制作和发布镜像

5.1 制作docker镜像

运行以下命令:docker build -t docker_sample:2.0 ./docker_paddledet

其中-t参数指定镜像的名称为docker_sample和tag标签为2.0,其中tag标签相当于版本号,最后的小点"./docker_paddledet"表示当前目录,因为当前目录下有Dockerfile文件。

5.2 运行docker容器

docker run -it --privileged=true -v /docker_paddledet:/docker_detection e84865604928

-v /docker_paddledet:/docker_detection 表示将容器中的/docker_detection文件与宿主机/docker_paddledet进行映射,这样预测完成的图像可以直接保存宿主机,便于查看。e84865604928是容器名称

5.3 发布镜像到阿里云

登录个人阿里云账号,找到容器镜像服务,然后将本地Docker镜像的tag更改为正确tag格式,然后上传至阿里云中

5.4 拉取镜像测试

六、参考资料


本项目github地址:https://github.com/leechenggg/docker-

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐