caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要。顺便说一句,下面的安装是支持python3的。
先决条件
在Jetson TX2上完成JetPack-3.1的安装。
构建并安装OpenCV-3.4.0,并确保其在python3下正常工作。参考:在Jetson TX2上安装OpenCV(3.4.0)
安装步骤
安装依赖项
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \
libhdf5-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 libopenblas-dev
接下来,需要从github上获取caffe的源代码。配置Jetson TX2,实际上从Makefile.config.example中修改了以下内容
设置 USE_CUDNN := 1
设置 OPENCV_VERSION := 3
在 CUDA_ARCH 中添加 compute_62(for TX2) 和 compute_53(for TX1)
用 python3.5 代替python2.7
在 PYTHON_LIBRARIES 中用 boost_python-py35 代替 boost_python3
在 PYTHON_INCLUDE 中用 /usr/local/lib/python3.5/dist-packages/numpy/core/include 代替
/usr/lib/python3.5/dist-packages/numpy/core/include
设置 WITH_PYTHON_LAYER := 1
在 INCLUDE_DIRS 添加 /usr/include/hdf5/serial
在 LIBRARY_DIRS 添加 /usr/lib/aarch64-linux-gnu /usr/lib/aarch64-linux-gnu/hdf5/serial
结果生成的Makefile.config,可以从这里下载
cd ~
git clone https://github.com/BVLC/caffe
cd caffe
cp Makefile.config.example Makefile.config
将下载好的Makefile.config拷贝到caffe文件夹下。/home/nvidia/caffe 是我的caffe所在目录
cp ~/Download/Makefile.config /home/nvidia/caffe
为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/aarch64-linux-gnu
sudo ln -s libhdf5_serial.so.10.1. libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0. libhdf5_hl.so
cd /home/nvidia/caffe // caffe所在目录
make all -j4 //j4代表计算机cpu有4个核,因此可以多线程一起make,这样make的速度会快很多。TX2是4核的,我们就不要学别人用什么j8,j16了,乖乖地敲j4
make test -j4
make runtest -j4
剩下的步骤是为了python3准备的。注意,我必须从源代码中安装 leveldb-0.20 才能使其正常工作
为python3手动构建并安装 leveldb-0.20,因为默认版本0.194无法在Jetson TX2上编译
mkdir -p ~/src
cd ~/src
wget https://pypi.python.org/packages/03/98/1521e7274cfbcc678e9640e242a62cbcd18743f9c5761179da165c940eac/leveldb-0.20.tar.gz
tar xzvf leveldb-0.20.tar.gz
cd leveldb-0.20
python3 setup.py build
sudo python3 setup.py install
接下来需要安装 ~/caffe/python/requirements.txt 里面的一些工具包
pkgs=`sed 's/[>=<].*$//' ~/caffe/python/requirements.txt`
for pkg in $pkgs; do sudo pip3 install $pkg; done
### build pycaffe
cd ~/caffe
make pycaffe
make distribute
在 ~/.bashrc 中添加下列行
export PYTHONPATH=/home/nvidia/caffe/python:$PYTHONPATH
验证安装是否成功
python3
>>> import numpy as np
>>> import caffe
此外,我还对caffe在Jetson TX2上的性能进行了基准测试。使用nvpmodel和~/ Jetson -clock .sh将Jetson TX2设置为最大性能模式。连接
cd ~/caffe
./build/tools/caffe time --gpu --model ./models/bvlc_alexnet/deploy.prototxt
参考文章:How to Install Caffe and PyCaffe on Jetson TX2
参考文章:初学JetsonTX2之安装CAFFE