docker_facenet_image在Docker容器中运行Facenet环境搭建

  对开发和运维人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境、任意时间让应用正常运行。而Docker恰恰是可以实现这一终极目标的瑞士军刀。

  具体来说,Docker在开发和运维过程中,具有如下几个方面的优势。

  1.更快速的交付和部署。使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以使用相同环境来部署代码。Docker可以创建和删除容器,实现快速迭代,大量节约开发、测试、部署的时间。并且,各个步骤都有明确的配置和操作,整个过程全程可见,使团队更容易理解应用创建和工作的过程。

  2.更高效的资源利用。Docker 容器的运行不需要额外的虚拟化管理程序支持,它是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低。

  3.更轻松的迁移和扩展。Docker 容器几乎可以在任意的平台运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性让用户可以在不同平台之间轻松迁移应用。

  4.更简单的更新管理。使用Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。并且所有修改都可以以增量的方式进行分发和更新,从而实现自动化并且高效的容器管理。

  基于Docker以上优点,我们来搭建Docker的facenet环境

       Facenet简介

    Facenet是一个基于Tensorflow实现的人脸识别器,其核心思想来自于论文:“FaceNet: A Unified Embedding for Face Recognition and Clustering”。此篇博客主要介绍如何用在Docker容器中搭建Facenrt环境

  在Docker容器中运行Facenet

  Ubuntu 系列安装 Docker

  要安装最新的Docker版本,首先需要安装apt-transport-https支持,之后通添加源来安装。

  $sudo apt-get install apt-transport-https

  $sudo apt -key adv--key server hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

  $sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

 

  $sudo apt-get update
      $sudo apt-get installl xc-docker
  
  如果是低版本的Ubuntu,需要先更新内核。
  
       $sudo apt-get update
  $sudoapt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
       $sudo reboot
  然后重复上面的步即可。安装之后启动Docker
  
  $sudo service docke rstart
  在Docker容器中搭建Facenet运行环境
  1.在docker内拉取一个Python3.5或者Python3.6的镜像。参考代码如下:
  
docker pull python:3.5

  2.通过命令sudo docker images 查看安装结果,如下图:

  

  3. 通过镜像python:3.5创建一个facenet容器,参考代码如下:

  

sudo docker run --name='docker_facenet' -dit python:3.5 /bin/bash

  4.通过命令sudo docker ps -a 查看容器,如下图:

  

  5.通过sudo docker attach docker_facenet进入容器,如下图:

  

  6.在Docker容器内安装各种运行Facenet需要的包。(同在本机上安装的那些包),参考代码如下:

  

pip install --upgrade tensorflow_gpu==1.7
pip install --upgrade numpy==1.16.2 pip install scipy==1.2.1 pip install scikit
-learn pip install opencv-python pip install h5py pip install matplotlib pip install Pillow pip install requests pip install psutil

 

      7.复制本地数据和代码到容器,参考指令如下:

  

docker cp /home/ubuntu/Lwh/data/3D-Face-BMP_blur_datagen.zip  docker_facenet:/lwh/facenet-master/src/align/datasets

  

  8.复制容器文件到本地宿主机,参考指令如下:

 

docker cp docker_facenet:/lwh/facenet-master  /home/ubuntu/Lwh/nvidia-docker-facenet

 

 

 

  9.运行各种Facenet程序,此时与在本机运行类似。需注意此时各个文件的路径是在docker的文件系统中的路径

  10.以上安装方法比较繁琐,后续更新Dockerfile更新方式

 

    

       

posted @ 2019-09-12 16:25  刘文华  阅读(645)  评论(0编辑  收藏  举报