docker部署深度学习模型

准备工作

本文目标为在docker上部署深度学习模型,并将完成的实例保存为镜像,方便今后部署。本次部署用到了docker、ubuntu18.04、python3.6.8、flask1.1.1、keras2.2.4、numpy1.17、tensorflow1.14cpu版(因为模型为图像分类模型、推理过程不需要太大的算力,在服务器至强6278C CPU上一张图的响应时间在0.4秒以内,相比之下,在本地服务器gtx 2080ti GPU上用时为0.24秒左右,并没有太大提升)以及常用的python库。

docker基本操作

1.docker镜像的获得

docker search ubuntu:18.04

docker部署深度学习模型_第1张图片

选择一个镜像,通过该路径下载镜像,如:

docker pull docker.io/library/ubuntu:18.04

该路径为官方镜像,里面很多东西都莫得,甚至没有python3,都需要自己装,如果想要省事就装一个配置完整的。
2.通过镜像运行一个容器

docker run -dit -v /root/mzw:/root/mzw -p 5001:5000 --name=test9999 docker.io/ubuntu

其中-dit,-v,-p,–name都是参数,详细参数介绍见docker run 参数,-v后的/root/mzw:/root/mzw表示文件映射路径。-p表示暴露的端口,我在外部打开了一个5001端口,对应的是内部的5000,这样在内部设置端口为5000就好了。–name是设置容器name,进入容器时可以用
3.进入容器
进入刚刚创建的容器

docker exec -it test9999 /bin/bash

其中-it是exec的参数,一般都用这个,具体介绍见exec 参数介绍,/bin/bash的作用是容器必须要有一个程序运行,否则会自动退出,见exec 中的/bin/bash

安装python等软件

参考(Ubuntu16.04安装python3.7及相应的pip)
现在已经创建了一个容器,在安装所需的软件之前,先将下载源设置为国内源,能大幅提高下载速度
1.下载vim用来编辑配置文件,vim操作有点难,需要学习一下,但是基本的编辑不难

apt-get install vim

现在找到配置文件,

vim /etc/apt/sources.list

进入编辑界面,删除所有内容先:按下esc后,输入dG,直接输,不要看有没有出来,在输完dG后会全部删除(vim 全部删除方法),再找到一个国内源,如阿里云,将配置代码写入,具体过程见:Ubuntu配置国内源。
2.安装sudo
安装之前更新一下

apt-get update

安装sudo

apt-get install sudo

之后的操作都用sudo来,不然可能会出问题。
3.安装wget

sudo apt-get install wget

安装zlib

sudo apt-get install zlib*

5.安装python3.6.8

sudo wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

由于python无法用apt-get安装,只能下载安装包,而安装包是在国外的网站下载,所以比较慢。
下载完成后,解压文件,

sudo tar -zxvf Python-3.6.8.tgz

安装gcc和make

sudo apt-get install gcc
sudo apt-get install make

进行配置

cd Python-3.6.8
./configure --prefix=/opt/ptyhon3.6

编译及安装

sudo make
sudo make install

设置软连接

sudo ln -s  /opt/ptyhon3.6/bin/python3.6 /usr/bin/python3

测试python是否安装成功

python3 -V

6.安装pip
安装pip之前,先安装setuptools

sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.1.tar.gz
sudo tar -zxvf setuptools-18.1.tar.gz
cd setuptools-18.1
sudo python3 setup.py build   
sudo python3 estup.py install

再安装pip

sudo apt-get install python3-pip

由于pip源来自国外,下载速度慢,可以参考ubuntu更改国内源详细方法
安装需要的python库

sudo pip install tensorflow==1.14
sudo pip install keras==2.2.4
sudo pip install flask==1.1.1
sudo pip install numpy==1.17

然后就可以部署模型啦

模型部署

将环境配置完成后,就可以将模型部署至该服务器,由于我的模型部署不需要gpu支持,所以没有安装cuda环境,若有需要,可以参考cuda安装文档

镜像保存

目前已经得到了一个可以快速部署模型的容器,接下来将其做成镜像并保存
在退出容器后将容器保存为镜像

docker commit -a 'mzw' test9999 deployed_image:latest 

将该镜像保存为tar文件

docker save deployed_image:lateset > deployed_image.tar       

这样就完成了一个模型部署的镜像制作,如果要更换服务器部署,就可以通过这个tar文件在新服务器中安装docker后进行快速部署

你可能感兴趣的:(ubuntu)