
基于PaddleDetection的Docker镜像制作、运行和发布
paddledetection训练好的模型制作docker容器镜像
★★★ 本文源自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-
更多推荐
所有评论(0)