TX2 配置caffe-经验版
本帖只适合刷机完后的TX2,这意味你的TX2已经装好了opencv,cuda,cudnn等软件包。
TX2配置caffe是我踩过的最深的坑,惨不忍睹,下面放出自己的配置过程。
一、安装依赖项
1.1一般依赖项
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
(提醒:如果发生找不到package的情况,就换源,记得换的是ARM源)
1.2.安装BLAS依赖项
sudo apt-get install libatlas-base-dev
1.3.安装python和其余依赖项,安装python及其头文件
sudo apt-get install python
sudo apt-get install python-dev
1.4.安装python的其他依赖
sudo apt-get install python-numpy
sudo apt-get install ipython
sudo apt-get install ipython-notebook
sudo apt-get install python-sklearn
sudo apt-get install python-skimage
sudo apt-get install python-protobuf
1.5谷歌glog和gflags和lmdb依赖项
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
二、下载caffe
git clone https://github.com/BVLC/caffe.git
然后进入到caffe的目录
cd caffe
三、编译Caffe
编译caffe是最容易掉坑的操作,我之前就是自己单独下的cudnn然后安装的,结果在编译阶段无限次报cudnn.so不兼容,找不到-lcudnn.h,逼得没办法只得通过刷机的方式装上了cudnn。
如果是自己下的cudnn然后安装的,是需要软连接的,我这里只考虑通过刷机方式装上的cudnn,这种是不需要软链接的,也不需要为hdf5创建链接。
3.1 修改Makefile.config
cp Makefile.config.example Makefile.config
(1)使用CuDNN(取消USE_CUDNN := 1前的‘#’)
(2)使用OpenCV v3(取消OPENCV_VERSION := 3前的‘#’)
(3)由于本人使用的是CUDA9.0版本,按删除了CUDA_ARCH变量的前两行。
(4)使用python接口(取消WITH_PYTHON_LAYER := 1变量前的’#’)
(5)将
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/aarch64-linux-gnu /usr/lib/aarch64-linux-gnu/hdf5/serial
(此处注意网上大部分帖子都写的x86_64-linux-gnu,然而压根就找不到这个文件夹)
3.2修改Makefile
(1)将:NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
(2)网上绝大部分的帖子都是这样写
将:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
然而这一句我压根找不到,如下图所示,我的直接是LIBRARIES += glog gflags protobuf boost_system boost_filesystem m,我是将下图最后一句改为了LIBRARIES += hdf5_serial_hl hdf5_serial。
3.3编译
make all -j4
如果没报错就运行测试:
sudo make test -j4
sudo make runtest -j4
如果都没报错,那就恭喜你装成功了。但由于没安装pycaffe接口,依然无法在python中导入caffe。需要编译caffe的python接口pycaffe,运行sudo make pycaffe
命令,然后在~/.bashrc文件中写入caffe的路径,在文件下方写入(遗漏这步可能导致no module named caffe)
export PYTHONPATH=~/caffe/python:$PYTHONPAT,然后source ~/.bashrc使得修改后的环境变量生效,该部分具体来自
https://blog.****.net/u012614287/article/details/81537743