注意事项:
1. 一般情况先装 JetPack,之后再配置caffe。
2. 其中编译caffe时可能报链接错误,鄙人认为是boost库不全造成的,建议在教程的基础上安装
sudo apt-get install libboost-all-dev
3. 由于嵌入式开发板不如桌面级显卡给力,make runtest 这一步十分漫长,可能需要好长一段时间(具体记不清了),但是这一步不是必须的,只是验证而已…
如果前面编译opencv2.4.9时遇到
opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations
法一http://code.opencv.org/issues/3814 下载 NCVPixelOperations.hpp 替换掉opencv2.4.9内的文件, 重新build。
法二打开
opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp
将所有的 template static 去掉static重新build
法三下载2.4.10及以后最新版本即可
首先安装tegra版本的cudnn cuDNN RC1 orcuDNN R2
(如果编译遇到错误请去nvidia官网下载cuDNN v4 Library for L4T (ARMv7)版cudnn-7.0-linux-ARMv7-v4.0-prod.tgz
tar -zxvf cudnn-7.0-linux-ARMv7-v4.0-prod.tgz会产生cuda文件夹,cd ~/cuda/include
sudo cp cudnn.h /usr/local/cuda-6.5/include
sudo cp libcudnn* /usr/local/cuda-6.5/lib)
分析错误原因可能是下载的caffe是最新版本,需要最新的v4版本cudnn支持,由于可能和r1和v2版本部分函数名称改变,如果按照老的安装教程会出现编译caffe错误。
#查询opencv版本
$ pkg-config --modversion opencv
开始安装caffe
sudo add-apt-repository universe
(系统自带4.8,最好降级为4.7,否则后面编译caffe时可能出现错误。)
sudo apt-get update
sudo apt-get install libprotobuf-dev protobuf-compiler gfortran \
libboost-dev cmake libleveldb-dev libsnappy-dev \
libboost-thread-dev libboost-system-dev \
libatlas-base-dev libhdf5-serial-dev libgflags-dev \
libgoogle-glog-dev liblmdb-dev gcc-4.7 g++-4.7
$ sudo usermod -a -G video $USER
sudo apt-get install -y git
git clone https://github.com/BVLC/caffe.git
cd caffe && git checkout dev
cp Makefile.config.example Makefile.config
sed -i "s/# CUSTOM_CXX := g++/CUSTOM_CXX := g++-4.7/" Makefile.config
$ gedit Makefile.config
修改Makefile.config
使能USE_CUDNN := 1
(最好是USE_CUDNN := 1
INCLUDE_DIRS := /usr/local/cuda-6.5/include
LIBRARY_DIRS := /usr/local/cuda-6.5/lib)
(sudo)make -j 4 all
最后运行caffe,并验证cpu和gpu下运行效率
build/tools/caffe time --model=models/bvlc_alexnet/deploy.prototxt --gpu=0
build/tools/caffe time --model=models/bvlc_alexnet/deploy.prototxt
##caffe图片分类
./build/examples/cpp_classification/classification.bin \
models/bvlc_reference_caffenet/deploy.prototxt \
models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \
data/ilsvrc12/imagenet_mean.binaryproto \
data/ilsvrc12/synset_words.txt \
examples/images/cat.jpg