<u>版權(quán)所有玛追,轉(zhuǎn)載請注明出處</u>
其它相關(guān)文章:
- 個人深度學(xué)習(xí)環(huán)境搭建(一):前言
- 個人深度學(xué)習(xí)環(huán)境搭建(二):主機配置與組裝 - 簡書
- 個人深度學(xué)習(xí)環(huán)境搭建(三):Windows10+Ubuntu16.04雙系統(tǒng)安裝
- 個人深度學(xué)習(xí)環(huán)境搭建(四):顯卡驅(qū)動與常用軟件安裝
** <big>未完待續(xù)……</big> **
說明:以下都是針對Ubuntu 16.04系統(tǒng)下的安裝伶丐。
一. opencv 3.1 安裝
官方網(wǎng)站關(guān)于opencv 3.1 的安裝說明偏少赊锚,官網(wǎng)上的教程還是2.3.4的状蜗。我們這里的安裝主要參考了以下網(wǎng)站:
Ubuntu 16.04 or 15.10 OpenCV 3.1 Installation Guide
Caffe + Ubuntu 15.04 + CUDA 7.5 新手安裝配置指南
ubuntu 16.04 編譯opencv3.1牲迫,opencv多版本切換
安裝過程主要包括依賴關(guān)系的安裝蚀狰、編譯手销、安裝等三個過程。
1. 依賴關(guān)系
主要安裝以下內(nèi)容:
sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
2. 編譯
從官網(wǎng)下載源代碼访诱,解壓縮并進入文件夾披坏。依次執(zhí)行以下指令。
mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make
其中盐数,在cmake
時可能會遇到以下問題——
(1)問題一:安裝過程中報“CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message)”棒拂,具體如下:
-- Found ZLIB: /home/machao/anaconda3/lib/libz.so (found version "1.2.8")
-- Found OpenEXR: /usr/lib/x86_64-linux-gnu/libIlmImf.so
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message):
The imported target "Qt5::Gui" references the file
"/usr/lib/x86_64-linux-gnu/libEGL.so"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
"/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake"
but not all the files it references.
Call Stack (most recent call first):
/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:50 (_qt5_Gui_check_file_exists)
/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:72 (_qt5gui_find_extra_libs)
/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:158 (include)
cmake/OpenCVFindLibsGUI.cmake:19 (find_package)
CMakeLists.txt:535 (include)
解決方法:可能是鏈接錯誤吧,參考here解決了問題玫氢。指令如下:
sudo rm /usr/lib/x86_64-linux-gnu/libEGL.so; sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so
(2)問題二:編譯過程中在-- ICV: Downloading ippicv_linux_20151201.tgz...
位置卡住很久帚屉,最后報錯CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file): file DOWNLOAD HASH mismatch
。
解決方法:這個應(yīng)該是由于下載包失敗導(dǎo)致的漾峡」サ可以手動下載原始文件并將壓縮包放置在路徑/home/machao/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
下。具體問題可以參考官方github上的這個issue(incorrect hash in cmake ippicv when installing #5973).
3. 安裝
編譯成功后生逸,執(zhí)行以下指令進行安裝
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
sudo apt-get update
歐新宇寫了個安裝腳本牢屋,包含了上述所有過程,可以方便地進行安裝槽袄,大家可以參考下烙无。百度云盤鏈接: http://pan.baidu.com/s/1qX1uFHa 密碼:wysa
二. Torch 安裝
# in a terminal, run the commands WITHOUT sudo
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh
安裝完成后添加PATH變量
# On Linux with bash
source ~/.bashrc
安裝完后建議安裝iTorch包截酷,可以方便地進行可視化編程。安裝方法如下:
sudo apt-get install libzmq3-dev libssl-dev python-zmq
git clone https://github.com/facebook/iTorch.git
cd iTorch
luarocks make
啟動只需要在終端輸入ipython notebook
即可乾戏。
官方的其它一些教程或者安裝包可以查看這個Cheatsheet.
三. caffe安裝
caffe是由BVLC開發(fā)的一個深度學(xué)習(xí)框架迂苛,主要由賈揚清在UC Berkeley攻讀PhD期間完成(大神,膜拜9脑瘛)三幻。
安裝教程主要參考官網(wǎng)上的安裝教程以及Github上針對Ubuntu15.04和16.04的安裝教程.
1. 依賴關(guān)系
- CUDA ,安裝可以參見前面的文章個人深度學(xué)習(xí)環(huán)境搭建(四):顯卡驅(qū)動呐能、CUDA念搬、cudnn及常用軟件安裝(暫未完成).這里就不再贅述了。
-
BLAS via ATLAS, MKL, or OpenBLAS催跪。這里我選擇安裝的是MKL锁蠕,MKL是微軟開發(fā)的商業(yè)工具包,不過面向科研和學(xué)生免費開放懊蒸,可以在官網(wǎng)注冊后下載.安裝方法可以參考[官方教程[(https://software.intel.com/en-us/parallel-studio-xe-2016-install-guide-linux).
下載完成后荣倾,進行解壓,然后進入文件夾骑丸,運行文件install_GUI.sh.
tar zxvf parallel_studio_xe_2016_update3.tar.gz
cd parallel_studio_xe_2016_update3
sudo sh install_GUI.sh 或者 sudo install.sh #前者是圖形安裝界面
安裝過程中會要求輸入序列號舌仍,這個key在注冊后官方會發(fā)郵件到注冊郵箱里妒貌,自己去查看。安裝完成后還需要進行一些環(huán)境的配置:
在/etc/ld.so.conf.d/下新建文件intel_mkl.conf
sudo vim /etc/ld.so.conf.d/intel_mkl.conf
然后在文件中添加以下代碼
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
添加完內(nèi)容后使用下面內(nèi)容使其生效:
sudo ldconfig
另外铸豁,如果選擇安裝ATLAS灌曙,在終端輸入sudo apt-get install libatlas-base-dev
即可。
sudo apt-get install -y build-essential cmake git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install --no-install-recommends libboost-all-dev
如果要使用Python接口的話需要裝以下依賴:
sudo apt-get install the python-dev
sudo apt-get install -y python-pip
sudo apt-get install -y python-devsudo apt-get install -y python-numpy python-scipy # (Python 2.7 development files)
sudo apt-get install -y python3-devsudo apt-get install -y python3-numpy python3-scipy # (Python 3.5 development files)
2. 安裝配置與編譯
<big>(1)caffe下載</big>
首先從官方下載caffe源包,解壓到某個位置头镊,如~/
下蚣驼。
<big>(2)Makefile.config文件配置</big>
首先需要在官方提供的Makefile.config文件的基礎(chǔ)上進行一些配置工作。先拷貝一份原始Makefile.config文件
cd ~/caffe-master
cp Makefile.config.example Makefile.config
可能需要修改的內(nèi)容主要有:
- OPENCV 3.0
OPENCV_VERSION := 3
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/share/OpenCV/3rdparty/lib/
- CPU
如果只使用CPU(不用GPU)的話相艇,設(shè)置如下(取消注釋):
CPU_ONLY := 1
- CUDNN
啟用CUDNN颖杏,設(shè)置如下(取消注釋):
USE_CUDNN := 1
注意要注釋掉CPU模式#CPU_ONLY := 1
。如果CUDA的路徑和實際不一致(CUDA_DIR := /usr/local/cuda坛芽,CUDA 8.0創(chuàng)建的文件夾名為cuda-8.0)留储,需要做一定修改或者創(chuàng)建軟鏈接。
- MKL
使用微軟的Intel Parallel Studio XE 2016咙轩,設(shè)置如下:
BLAS := mkl
實際上获讳,這里根據(jù)你采用的BLAS來修改。
- 一些庫和引用文件
python和hdf5的引用文件和庫臭墨。
PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
此處需要根據(jù)采用的python版本來修改赔嚎,默認是python 2.7膘盖,也可以修改為python 3或者Anaconda Python胧弛。同時注意一定要添加hdf5的引用文件和庫路徑,我第一次編譯caffe失敗就是這個地方?jīng)]弄好侠畔。
如果采用Anaconda Python结缚,可以設(shè)置如下(取消注釋):
ANACONDA_HOME := $(HOME)/anaconda3
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python3.5m \
$(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include \
PYTHON_LIB := $(ANACONDA_HOME)/lib
根據(jù)官方的安裝說明還要執(zhí)行一些指令進行hdf5的配置:
find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
官方說這對于Ubuntu 16.04是必須的。上面的libhdf5的版本號需要根據(jù)實際來修改下软棺。
- MATLAB
取消對MATLAB的注釋即可红竭。
MATLAB_DIR := /usr/local/MATLAB/R2016a
<big>(3)其它配置</big>
如果需要python接口,需要做如下操作(我也不知道為什么……):
cd ~/caffe-master/python
for req in $(cat requirements.txt); do pip install $req; done
3. 編譯
- 執(zhí)行以下命令進行caffe的編譯喘落。
cd ~/caffe-master
make all -j $(($(nproc)+1))
make test -j $(($(nproc)+1))
make runtest -j $(($(nproc)+1))
這里的-j $(($(nproc) + 1))
表示調(diào)用CPU可用的核進行并行編譯茵宪,可以加快便已速度。
編譯過程中遇到的問題:
(1)CUDA報錯
報錯記錄如下瘦棋。
NVCC src/caffe/util/math_functions.cu
NVCC src/caffe/util/im2col.cu
make: /usr/local/cuda/bin/nvcc: Command not found
make: /usr/local/cuda/bin/nvcc: Command not found
Makefile:588: recipe for target '.build_release/cuda/src/caffe/util/math_functions.o' failed
NVCC src/caffe/solvers/adam_solver.cu
make: *** [.build_release/cuda/src/caffe/util/math_functions.o] Error 127
make: *** Waiting for unfinished jobs....
Makefile:588: recipe for target '.build_release/cuda/src/caffe/util/im2col.o' failed
make: *** [.build_release/cuda/src/caffe/util/im2col.o] Error 127
make: /usr/local/cuda/bin/nvcc: Command not found
Makefile:588: recipe for target '.build_release/cuda/src/caffe/solvers/adam_solver.o' failed
make: *** [.build_release/cuda/src/caffe/solvers/adam_solver.o] Error 127
解決方法:這個是CUDA沒有安裝好(主要是我之前進入不了桌面重裝過一次顯卡驅(qū)動稀火,估計把CUDA弄壞了),然后重裝了下CUDA就好了赌朋。
(2)google::protobuf相關(guān)內(nèi)容報錯
參考這篇博客凰狞,應(yīng)該是Ubuntu系統(tǒng)版本胎心篇裁,apt-get安裝的protobuf不兼容。
解決方法:下載最新的protobuf源碼進行編譯安裝赡若。
先卸載原有版本:
sudo apt-get autoremove libprotobuf-dev protobuf-compiler
然后安裝新版本达布,安裝過程可以參考官方Github上的說明。首先安裝依賴關(guān)系:
sudo apt-get install autoconf automake libtool curl make g++ unzip
然后逾冬,執(zhí)行下面命令生成配置腳本:
./autogen.sh
這里需要下載google的gmock黍聂,此處可能下載有問題,這里我已上傳到網(wǎng)盤身腻,請自行下載分冈,下載后解壓到protobuf文件下,注意將文件夾名稱改為gmock霸株。
然后雕沉,就是常見的編譯過程:
./configure
make
make check
sudo make install
sudo ldconfig
安裝完成后,還需要進行環(huán)境的配置去件,
(3)在重新安裝protobuf之后坡椒,進行caffe編譯又出現(xiàn)下面的錯誤:
make: *** No rule to make target '/usr/include/google/protobuf/stubs/common.h', needed by '.build_release/cuda/src/caffe/util/math_functions.o'. Stop.
報錯原因:查看了下上面的報錯,并沒有找到“/usr/include/google/protobuf/stubs/common.h”這個路徑及文件尤溜。查看了官方Github上的說明文件發(fā)現(xiàn)原來protobuf默認安裝路徑是/usr/local/
倔叼,而caffe編譯時卻在/usr/
下查找指定文件。
解決方法:重新安裝宫莱,并修改編譯路徑為./configure --prefix=/usr
丈攒,然后重新編譯安裝。
(4)編譯器gcc報錯
部分報錯內(nèi)容如下:
/usr/local/cuda/include/host_config.h:115:2: error: #error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
解決方法:gcc和g++版本太低授霸。根據(jù)上面的報錯內(nèi)容巡验,找到文件host_config.h并打開,注釋掉里面的版本檢查語句:
//error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
- 對caffe和matlab接口進行編譯
make pycaffe -j $(($(nproc) + 1))
make matcaffe -j $(($(nproc) + 1))
參考內(nèi)容
深度學(xué)習(xí)(四十一)cuda8.0+ubuntu16.04+theano碘耳、caffe显设、tensorflow環(huán)境搭建
http://ouxinyu.github.io/Blogs/20151108001.html
http://blog.csdn.net/autocyz/article/details/51783857
http://blog.csdn.net/g0m3e/article/details/51420565
http://caffe.berkeleyvision.org/install_apt.html
http://blog.csdn.net/solomon1558/article/details/52015754
https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide
<div align = center>-END-</div>
<u>版權(quán)所有,轉(zhuǎn)載請注明出處</u>