基于docker的caffe环境搭建方法

为什么要用docker, 熟悉docker 其实已经很久了,自从实习的时候觉得它是一个利器以来一直没有机会使用它,这几天在折腾caffe环境中,觉得是时候用上Docker了。

需求:构建一个独立的容器,里面安装了caffe 的所有依赖,在需要跑代码的时候,直接运行它。

优点:可以解决各种依赖问题,比如这个软件需要安装gcc 4.7 ,而另外一个需要安装gcc 4.8 等等互斥的环境需求。

Docker 安装

docker 的安装和基本使用,可以参照我上面的两篇博客:安装篇 和 使用篇 。

构建镜像

构建镜像有两种方法:

1,写Dockerfile,优点是便于共享;

2,从容器中commit,优点是简单方便,但是不方便共享。

由于安装caffe环境需要众多的依赖包,而且由于网络方面的原因,这些依赖包往往不能一次够装好,为了方便起见,这里直接启动一个基本的容器,然后从里面安装依赖包。

这边选择基本的ubuntu:14.04 来开始构建环境,

1,启动容器:

代码如下:

sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_caffe -i -t ubuntu:14.04 /bin/bash

需要更改dns,是因为如果没有的话,容器上不了网。

2,依赖包安装

进入容器之后,所有的操作就跟普通的一个样了。

首先安装一些基本的工具:

apt-get install wget
apt-get install unzip
apt-get install python-pip

新建路径,后面所有的caffe代码都放在这里

mkdir /home/crw/Caffe
cd /home/crw/Caffe

opencv 的安装:

github上面有一个一键安装的,但是在容器里面一键安装不了,后面我是把它里面的脚本一句一句的搞出来执行。

#opencv一句一句的运行
arch=$(uname -m)
if [ "$arch" == "i686" -o "$arch" == "i386" -o "$arch" == "i486" -o "$arch" == "i586" ]; then flag=1; else flag=0; fi
echo "Installing OpenCV 2.4.9"
mkdir OpenCV
cd OpenCV
sudo apt-get -y install libopencv-dev
sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
sudo apt-get -y install libtiff4-dev libjpeg-dev libjasper-dev
sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev
sudo apt-get -y install python-dev python-numpy
sudo apt-get -y install libtbb-dev
sudo apt-get -y install libqt4-dev libgtk2.0-dev
sudo apt-get -y install libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev
wget http://archive.ubuntu.com/ubuntu/pool/multiverse/f/faac/faac_1.28-6.debian.tar.gz
vi /etc/hosts
ifconfig
sudo apt-get -y install x264 v4l-utils ffmpeg
wget -O OpenCV-2.4.9.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download
unzip OpenCV-2.4.9.zip
cd opencv-2.4.9
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make -j4
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
cd ..

caffe 和python依赖包:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libatlas-base-dev

安装cuda:

这里面个小技巧就是,如何从host 主机导入数据到容器中,可以使用如下命令(在host上运行)

sudo cp cuda_7.5.18_linux.run /var/lib/docker/aufs/mnt/92562f161e51994949dd8496360265e5d54d32fbe301d693300916cd56d4e0a2/home/crw/Caffe

sudo cp cudnn-7.0-linux-x64-v3.0-prod.tgz /var/lib/docker/aufs/mnt/92562f161e51994949dd8496360265e5d54d32fbe301d693300916cd56d4e0a2/home/crw/Caffe

sudo cp caffe-master.zip /var/lib/docker/aufs/mnt/92562f161e51994949dd8496360265e5d54d32fbe301d693300916cd56d4e0a2/home/crw/Caffe

其中,那一长串数字,是你的容器的完全id,可以用命令

代码如下:

docker inspect -f   '{{.Id}}' ubuntu_caffe #ubuntu_caffe 是容器的名字

./cuda_*_linux.run -extract=`pwd`
./NVIDIA-Linux-x86_64-*.run -s --no-kernel-module
./cuda-linux64-rel-*.run -noprompt

安装cudnn:

tar -xvf cudnn-7.0-linux-x64-v3.0-prod.tgz
cp cuda/include/cudnn.h /usr/local/cuda/include/
cp cuda/lib64/* /usr/local/cuda/lib64/

安装caffe:

cd caffe-15.12.07/
cp Makefile.config.example Makefile.config
vi Makefile.config
make all
make test

安装caffe 的python绑定

cd python/

apt-get install python-pip
for req in $(cat requirements.txt); do pip install $req; done

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

下面这几个包需要手动自己去装,用上面的命令一直装不好。

apt-get install python-scipy
for req in $(cat requirements.txt); do pip install $req; done
pip install -U scikit-learn
for req in $(cat requirements.txt); do pip install $req; done
pip install scikit-image
for req in $(cat requirements.txt); do pip install $req; done

然后

make pycaffe

最后, 新建一个路径,以便于磁盘映射

mkdir /media/crw/MyBook

所有的环境都做好了之后,就可以commit 了

docker commit 92562f161e519 my-ubuntu-caffe

这样,就在本地环境中,制作好了一个转好caffe gpu环境的容器了。

启动caffe启动容器:

sudo docker run -ti \
  --device /dev/nvidia0:/dev/nvidia0 \
  --device /dev/nvidiactl:/dev/nvidiactl \
  --device /dev/nvidia-uvm:/dev/nvidia-uvm \
  -v /media/crw/MyBook:/media/crw/MyBook \
  my-ubuntu-caffe /bin/bash

1,显卡直通使用,
2,文件映射,挂载一个host主机的磁盘到容器路径下,这里设置为相同,可以减少一些不必要的麻烦。

运行caffe模型训练

会有提示说找不到cuda啥的,设置一下环境变量即可。

$ export CUDA_HOME=/usr/local/cuda
$ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
$ PATH=${CUDA_HOME}/bin:${PATH}
$ export PATH
cd /media/crw/MyBook/Experience/FaceRecognition/Softmax/try3_3
./train.sh

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解docker搭建redis集群的环境搭建

    本文介绍了docker搭建redis集群的环境搭建,分享给大家,废话不多说,具体如下: 下载镜像 docker pull redis 准备配置文件 mkdir /home/docker/redis/ wget https://raw.githubusercontent.com/antirez/redis/3.0/redis.conf -O /home/docker/redis/redis.conf cd /home/docker/redis/ sed -i 's/# slaveof <maste

  • 详解Centos6.5下docker 环境搭建

    一.运行docker Linux内核版本需要在3.8以上,针对centos6.5 内核为2.6的系统需要先升级内核.不然会特别卡,退出容器. 在yum的ELRepo源中,有mainline(3.13.1).long-term(3.10.28)这2个内核版本,考虑到long-term更稳定,会长期更新,所以选择这个版本. 1.查看当前版本: [root@localhost ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an

  • CentOS7 Nvidia Docker环境搭建

    最近在搞tensorflow的一些东西,话说这东西是真的皮,搞不懂.但是环境还是磕磕碰碰的搭起来了 其实本来是没想到用docker的,但是就一台配置较好的服务器,还要运行公司的其他环境,vmware esxi用起来太费劲,还是算了. 环境: 系统:CentOS7 7.4 1708 显卡:Nvidia 1080Ti 下载所有需要的东东 1.docker-ce yum repo : https://download.docker.com/linux/centos/docker-ce.repo 2.n

  • 详解MAC OSX Docker开发环境搭建

    MAC OSX  Docker 开发环境搭建 1. 安装Virtualbox 下载地址:https://www.virtualbox.org/ VirtualBox简体中文版下载安装(图解教程)http://www.jb51.net/article/95311.htm 2. 安装boot2docker $ brew install boot2docker # 也可以手工安装: $ curl https://raw.github.com/steeve/boot2docker/master/boot

  • 基于docker的caffe环境搭建方法

    为什么要用docker, 熟悉docker 其实已经很久了,自从实习的时候觉得它是一个利器以来一直没有机会使用它,这几天在折腾caffe环境中,觉得是时候用上Docker了. 需求:构建一个独立的容器,里面安装了caffe 的所有依赖,在需要跑代码的时候,直接运行它. 优点:可以解决各种依赖问题,比如这个软件需要安装gcc 4.7 ,而另外一个需要安装gcc 4.8 等等互斥的环境需求. Docker 安装 docker 的安装和基本使用,可以参照我上面的两篇博客:安装篇 和 使用篇 . 构建镜

  • 基于Docker部署GitLab环境搭建的方法步骤

    注意:建议虚拟机内存2G以上,一定要配置阿里云的加速镜像 1.下载镜像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 2.创建GitLab 的配置 (etc) . 日志 (log) .数据 (data) 放到容器之外, 便于日后升级 mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data 3.运行GitLab容器 进入/mnt/gitlab/etc目录,运行一

  • 使用Docker构建开发环境的方法步骤( Windows和mac)

    目录 1. 使用 Docker 的好处 2. 安装 Docker 1) Linux 安装 Docker 2) Windows 10 3) macOS 3. Docker 换源 1) Linux 换源 2) Windows 和 Mac 换源 4. 编写 Dockerfile 5. 编写 docker-compose.yml 6. 启动容器 7. 总结 我们在开发中都会遇到这样的问题:在本地开发好功能后,部署到服务器,或者其他人拉到本地接着开发时,会出现功能无法使用的情况. 这些异常情况,大多数时候

  • 使用Docker+jenkins+python3环境搭建超详细教程

    前言: 自动化写好后需要在服务器上每日定时运行遇到,这样的一个问题,Jenkins容器是在docker中安装的 ,然后从git上拉取代码 发现代码在jenkins容器的目录当中,运行的时候提示没有安装python环境还第三方库. 解决方法有3种: 第一种:启动jenkins容器时 将容器的目录挂载到宿主机目录上去执行(方法不能实现)Pass 第二种:在jenkins上创建本地节点,将代码拉取到本地 然后去运行本地项目(在本机上使用比较方便,但是局限性比较小) 第三种:重新封装jenkins镜像,

  • Centos6.5和Centos7 php环境搭建方法

    总有人认为linux搭建php环境很复杂,然后尝试安装lnmp一键安装包.其实说白了就是安装一个web服务器,然后支持php即可,很简单的,比起你安装lnmp一键安装包还要简单.不说大话,看实际安装步骤. 首先我们先查看下centos的版本信息 复制代码 代码如下: #适用于所有的linux lsb_release -a #或者 cat /etc/redhat-release #又或者 rpm -q centos-release 以上三种任意一种均可查看centos的版本信息. 这里我们分别在c

  • centos7系统nginx服务器下phalcon环境搭建方法详解

    本文实例讲述了centos7系统nginx服务器下phalcon环境搭建方法.分享给大家供大家参考,具体如下: 之前我们采用的是Apache服务器,可是每秒响应只能达到2000,听说nginx可以轻易破万, 于是换成nginx试试. phalcon的官网有nginx重写规则的示例,可是却与apache的不一致,被坑了好久. 1.添加nginx源 vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.

  • 搭建基于express框架运行环境的方法步骤

    一.Express简介 Express提供了一个轻量级模块,把Node.js的http模块功能封装在一个简单易用的接口中.Express也扩展了http模块的功能,使你轻松处理服务器的路由.响应.cookie和HTTP请求的状态.使用Express可以充当Web服务器. 二.搭建基于express框架运行环境  开发后端的node服务 1.安装express ① 安装全局变量 npm install express-generator -g (全局变量会在C盘node文件下) ②查看安装成功:e

  • Spark在Windows下的环境搭建方法

    本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM Platform Standard Edition Development Kit)的安装,去Oracle官网下载,下载地址是Java SE Downloads. 上图中两个用红色标记的地方都是可以点击的,点击进去之后可以看到这个最新版本的一些更为详细的信息,如下图所示: 下载完之后,我们安装就可以直

  • java selenium教程环境搭建方法

    webdriver 就是selenium 2.    webdriver 是一款优秀的,开源的,自动化测试框架. 支持很多语言.  本文描述的是用java Eclipse 如何搭建环境 阅读目录 首先下载好Eclipse 和配置好Java 环境变量 方法一 添加jar包 方法二 直接引用selenium-server-standalone.jar  首先下载好Eclipse 和配置好Java 环境变量: http://www.jb51.net/article/87443.htm 方法一 添加ja

  • Vue.js 2.0和Cordova开发webApp环境搭建方法

    HTML5开发APP技术文档 一.环境参数 1.技术语言:HTML.CSS.ES6.Node.js等: 2.框架:Vue.js 2.x.Cordova: 3.开发系统:mac.windows等: 4.环境配置: node 6+ npm 3+ (最好下载Node.js官方最新版本) .jdk1.8.SDK(请直接下载Androidstudio软件官方最新版本,已集成AndroidSDk,建议以默认路径安装) . 二.系统环境变量配置(以window7为例) 1.AndroidSDK配置 A)添加用

随机推荐