佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 基于docker的caffe環(huán)境搭建方法

基于docker的caffe環(huán)境搭建方法

熱門標(biāo)簽:智能手機(jī) 硅谷的囚徒呼叫中心 網(wǎng)站建設(shè) 阿里云 使用U盤裝系統(tǒng) 檢查注冊表項(xiàng) 百度競價點(diǎn)擊價格的計(jì)算公式 美圖手機(jī)

為什么要用docker, 熟悉docker 其實(shí)已經(jīng)很久了,自從實(shí)習(xí)的時候覺得它是一個利器以來一直沒有機(jī)會使用它,這幾天在折騰caffe環(huán)境中,覺得是時候用上Docker了。

需求:構(gòu)建一個獨(dú)立的容器,里面安裝了caffe 的所有依賴,在需要跑代碼的時候,直接運(yùn)行它。

優(yōu)點(diǎn):可以解決各種依賴問題,比如這個軟件需要安裝gcc 4.7 ,而另外一個需要安裝gcc 4.8 等等互斥的環(huán)境需求。

Docker 安裝

docker 的安裝和基本使用,可以參照我上面的兩篇博客:安裝篇 和 使用篇 。

構(gòu)建鏡像

構(gòu)建鏡像有兩種方法:

1,寫Dockerfile,優(yōu)點(diǎn)是便于共享;

2,從容器中commit,優(yōu)點(diǎn)是簡單方便,但是不方便共享。

由于安裝caffe環(huán)境需要眾多的依賴包,而且由于網(wǎng)絡(luò)方面的原因,這些依賴包往往不能一次夠裝好,為了方便起見,這里直接啟動一個基本的容器,然后從里面安裝依賴包。

這邊選擇基本的ubuntu:14.04 來開始構(gòu)建環(huán)境,

1,啟動容器:

復(fù)制代碼 代碼如下:
sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_caffe -i -t ubuntu:14.04 /bin/bash

需要更改dns,是因?yàn)槿绻麤]有的話,容器上不了網(wǎng)。

2,依賴包安裝

進(jìn)入容器之后,所有的操作就跟普通的一個樣了。

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

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

新建路徑,后面所有的caffe代碼都放在這里

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

opencv 的安裝:

github上面有一個一鍵安裝的,但是在容器里面一鍵安裝不了,后面我是把它里面的腳本一句一句的搞出來執(zhí)行。

#opencv一句一句的運(yùn)行
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:

這里面?zhèn)€小技巧就是,如何從host 主機(jī)導(dǎo)入數(shù)據(jù)到容器中,可以使用如下命令(在host上運(yùn)行)

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

其中,那一長串?dāng)?shù)字,是你的容器的完全id,可以用命令

復(fù)制代碼 代碼如下:
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

所有的環(huán)境都做好了之后,就可以commit 了

docker commit 92562f161e519 my-ubuntu-caffe

這樣,就在本地環(huán)境中,制作好了一個轉(zhuǎn)好caffe gpu環(huán)境的容器了。

啟動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主機(jī)的磁盤到容器路徑下,這里設(shè)置為相同,可以減少一些不必要的麻煩。

運(yùn)行caffe模型訓(xùn)練

會有提示說找不到cuda啥的,設(shè)置一下環(huán)境變量即可。

$ 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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:湖北 煙臺 山南 懷化 通遼 湘潭 黃山 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于docker的caffe環(huán)境搭建方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    舞阳县| 泸州市| 洪雅县| 临城县| 甘南县| 察哈| 武清区| 固原市| 金沙县| 新昌县| 江西省| 牙克石市| 阳东县| 永春县| 东源县| 乐都县| 达尔| 正定县| 修水县| 天全县| 山东| 临城县| 高雄市| 阿城市| 迁安市| 长岛县| 土默特右旗| 岗巴县| 临邑县| 平顺县| 大同市| 水城县| 蓬莱市| 翁牛特旗| 浪卡子县| 通许县| 板桥市| 平远县| 余庆县| 建德市| 黑水县|