注意事项:
1. 一般情况先装 JetPack,之后再配置caffe。
2. 其中编译caffe时可能报链接错误,鄙人认为是boost库不全造成的,建议在教程的基础上安装
sudo apt-get install libboost-all-dev
3. 由于嵌入式开发板不如桌面级显卡给力,make runtest 这一步十分漫长,可能需要好长一段时间(具体记不清了),但是这一步不是必须的,只是验证而已…
如果前面编译opencv2.4.9时遇到
法一http://code.opencv.org/issues/3814 下载 NCVPixelOperations.hpp 替换掉opencv2.4.9内的文件, 重新build。
法二打开
将所有的 template static 去掉static重新build
法三下载2.4.10及以后最新版本即可
首先安装tegra版本的cudnn cuDNN RC1 orcuDNN R2
$ tar -zxvf cudnn-6.5version.tgz
$ cd cudnn-6.5version
# copy the include file
$ sudo cp cudnn.h /usr/local/cuda-6.5/include
$ sudo cp libcudnn* /usr/local/cuda-6.5/lib
(如果编译遇到错误请去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
cd ~/cuda/lib
sudo cp libcudnn* /usr/local/cuda-6.5/lib)
b. 链接cuDNN的库文件
$ sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4
$ sudo ln -sf /usr/local/lib/libcudnn.so.4 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v
分析错误原因可能是下载的caffe是最新版本,需要最新的v4版本cudnn支持,由于可能和r1和v2版本部分函数名称改变,如果按照老的安装教程会出现编译caffe错误。
不要想当然的认为jetson tk1必须是cuda6.5加cudnn r1或者v2 for arm,要与时俱进与caffe最新版本匹配,jetson tk1 +cudnn v4 for l4t armv7 (尽管可能上边标着cuda7.0)也是合适的,所以当遇到错误时,尽量多尝试,不要墨守成规。
#查看linux系统版本和位数
如何查看自己的linux是32位还是64位
可以用命令“getconf LONG_BIT”查看,
如果返回的结果是32则说明是32位,返回的结果是64则说明是64位。
此外还可以使用命令“uname -a”查看,
输出的结果中,如果有x86_64就是64位的,没有就是32位的。
#查询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