您的位置:首页 > Web前端

深度学习21天实战caffe学习笔记《16:Caffe迁移和部署》

2017-11-23 17:51 495 查看

Caffe的迁移和部署

1、从开发测试到生产部署 : 离线训练、在线识别
开发:离线训练阶段
数据专家选择训练数据,算法专家设计模型参数,开发专家优化和调试训练过程,得到满足发布的模型,在caffe中表现为*.caffemodel文件;
部署:在线识别阶段
利用发布模型到线上或者某个嵌入式平台生产机器,接入线上其他服务(存储、数据库),获取在线数据并用上述模型处理,将结果返回客户端。并且将异常结果反馈给开发阶段,知道数据专家提出“脏”数据、算法专家改进型、开发专家排查代码bug,得到更加准确的模型。
2、使用Docker
Docker是开源应用容器引擎,开发者可以吧一个linux应用和他所一男的一切(比如配置文件和库)都翻转到一个容器中,然后发布到任何Linux机器上。
Docker作为一个全新的自动化运维工具,可以实现开发测试环境和生产部署的平滑迁移。

Why:

(开发和部署)离线训练、在线识别

Docker

开源的应用容器引擎,沙箱机制,自动化运维工具,实现开发测试环境与生产部署环境的平滑迁移。
Docker与传统的虚拟机(如VMware,VirtualBox)很相似,但更具优势:

1、创建和销毁秒级完成,启动速度飞快;
2、体积小,可迁移到任何流行的Linux机器上;
3、占用系统资源极低;
4、可自动化部署、集群管理

Docker 两个主要部件:
Docker: 开源的容器虚拟化平台
Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- Docker Hub

基本概念:

Docker 守护进程
Docker 守护进程运行在一台主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。Docker 客户端
Docker 客户端,实际上是 docker 的二进制程序,是主要的用户与 Docker 交互方式。它接收用户指令并且与背后的 Docker 守护进程通信,如此来回往复。
Docker 内部
  主要三种部件:

镜像(Image):一个包含了应用程序和其运行时依赖环境的制度文件(类比系统盘、可执行程序文件),他是构建容器的民办,通过一个极限可以构造出很多独立当时运行环境一样的容器。
容器(Container):基于某个镜像生成并动态运行运行的相互隔离的实例(类比运行起来的操作系统、运行可执行程序文件的进程)
镜像仓库(Docker Hub):Docker广泛提供的用于集中存储、管理就像的服务,采用类似于Git Hub的方式保存共有或者私有的镜像,同时允许第三方搭建。



安装:

Ubuntu14.04环境下:
$apt-get update
$apt-get -y install docker.io检查Docker服务的状态:
$service docker.io status自启动服务:
$update-rc.d docker.io defaults添加Docker用户组:
默认情况只有root可以使用权限,创建docker用户组将使用docker的用户添加进来,避免多人同时使用root用户。
$usermod -aG docker your_user_name测试安装:
#docker run hello-world


入门:

0、查看docker信息:
$ docker
1、显示Docker信息
$docker vision #显示版本信息
$docker info #使用状态2、下载Docker镜像
$docker pull ubuntu #从docker注册服务器的软件仓库下载一个现成的docker镜像
$docker images    #查看系统中已经有的镜像
3、从镜像创建Docker容器
$docker run -i -t ubuntu/bin/bash #创建一个活动的容器 -i : 交互模式,输入输出在控制台进行;-d  容器启动后进入后台工作,非交互模式
 -t :为创建的容器分配一个伪终端ttyubuntu:创建容器的镜像名称,可以用镜像ID代替
/bin/bash :在新建的容器中运行的命令,任意linux命令
:  Ctrl+P--->Ctrl+Q返回宿主机终端会话
  $docker ps 查看当前活动的容器
 $docker attach 610  #重新与之前的容器建立连接(610是CONTAIN ID的钱3个字符)
4、从容器创建Docker镜像
(1)、从运行的容器创建; $docker commit -m "Test a change" 610 ubuntu:test_change
ubuntu:test_change为新镜像的名字ID(679)

(2)、编写Docker文件创建镜像;
5、上传Docker镜像
#注册Docker Hub账号,登录
$docker login
#推送镜像到Hub
$docker tag 610 zxx/mastercaffe :test_ubuntu_change
$docker push zxx/mastercaffe :test_ubuntu_change #push与pull作用相反

进阶:

1、阿里云Docker Hub管理镜像 https://dev.aliyun.com/search.html 具体步骤可以上网查。
2、其他国内云平台:

DaoCloud https://www.daocloud.io/
网易蜂巢 https://c.163.com/  提供镜像仓库、容器云服务
DaoCloud:提供镜像仓库、应用管理、应用编排、数据卷、集群管理,并且免费使用1~2个容器,或者加入自己的服务器进行管理。
百度BAE:提供弹性、分布式的应用托管服务,帮助开发者一站式轻松开发并部署应用程序(Web应用及移动应用)。每月花几元钱就可以使用容器服务部署应用程序。
灵雀云:容器云平台,提供企业级应用集成、交付、运维的一站式解决方案。

不是专门研究这个的所以不花费太多时间,了解就好
参考资料: http://blog.csdn.net/zmx729618/article/details/72930474 http://blog.csdn.net/u012562943/article/category/6048991
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: