在Jetson TX2上安装caffe和PyCaffe

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

在Jetson TX2上安装caffe和PyCaffe

参考文章:How to Install Caffe and PyCaffe on Jetson TX2

参考文章:初学JetsonTX2之安装CAFFE

上一篇:shell ssh 远程机器 追加文件内容


下一篇:MyGeneration 数据库驱动为空