无奈笔记本的性能太渣,双系统切换太麻烦,索性就拿tx2来当第二台电脑,需要在linux上跑的demo都放到tx2上跑;
先安装caffe(我重刷了两次机o(『﹏『)o)。
先配置依赖项
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install –no-install-recommends libboost-all-dev
(看他人的博客要安装libopencv-dev,但是我安装时出现opencv版本的问题,所以没安装,在使用opencv的python库时并没有出现什么问题,所以暂且不管)
sudo apt-get install –no-install-recommends libboost-all-dev
然后是python的相关安装:
sudo apt-get install python-dev
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
当然还要安装pip
sudo apt-get install python-pip
然后sudo pip install –upgrade pip
但是用pip安装python包时会出现速度非常慢的现象,安装一个包少则四五分钟,多则十几分钟,可能是tx2的cpu核心是A57,和X86比还是有很大差距,导致编译时慢(看top猜的),所以建议尽量用apt-get安装
然后是谷歌glog和gflags和lmdb依赖项
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
接着安装git,并且下载代码
sudo apt-get install git
git clone https://github.com/BVLC/caffe.git(github网速真心慢,几K每秒)
进入到源码
cd caffe
cp Makefile.config.example Makefile.config
修改makefile和Makefile.config
vim Makefile.config
去掉USE_CUDNN := 1前的注释,然后去掉
去掉89行左右的WITH_PYTHON_LAYER := 1前的注释

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
        -gencode arch=compute_25,code=sm_25 \
        -gencode arch=compute_30,code=sm_30 \
        -gencode arch=compute_35,code=sm_35 \
        -gencode arch=compute_50,code=sm_50 \
        -gencode arch=compute_52,code=sm_52 \
        -gencode arch=compute_60,code=sm_60 \
        -gencode arch=compute_61,code=sm_61 \
        -gencode arch=compute_61,code=compute_61

为了匹配cuda8的计算能了去掉
-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_25,code=sm_25 \
在92行左右将

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

改为

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

然后改Makefile.config
将175行左右的

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

然后

sudo make clean

sudo make -j8

fft函数 Python自己设计 python fft2_linux


(这里调用大牛的结果,以及大牛博客:)

在这里caffe的安装已经完成,来用一下caffe自带的minst demo来体验一下:

cd caffe;

sudo sh data/minst/get_mnist.sh

下载mnist的数据集

然后

sudo sh example/mnist/create_mnist.sh

sudo sh example/mnist/train_lenet.sh

fft函数 Python自己设计 python fft2_python_02


可以看到caffe识别出TX2的GPU并调用TX2的GPU在跑demo

fft函数 Python自己设计 python fft2_linux_03


从结果看caffe的mnist sample用了两层卷积,跑完训练用了2分多钟,并且准确率达到99%,(比matlab跑快好多;虽然网上说GPU+CUDNN只要45秒,但这边要两分钟,可能是TX2毕竟属于移动版,还是比不上GTX系列或者专业显卡)(注意caffe的example的sample文件里是相对路径的相对于caffe文件夹,所以cd到caffe文件加下运行sh)

这边我再说一下我踩得两个坑:

1:在跑比如github上的rcnn时,编译github会出现Makefile 563的错误,那是因为github上caffe-rcnn包中的cudnn版本的原因,解决方法是将下载的caffe中src/layers/,src/util/,include/caffe/layers/,include/caffe/util/文件中的cudnn文件复制替换caffe-rcnn文件的相应位置的cudnn文件

2:在运行如rcnn的demo.py时会出现类似

ImportError: No module named gpu_nms

那时因为在nms文件夹下的文件是对于桌面平台的GPU及CPU编译的,你需要删除然后进入lib目录下

执行make命令,编译时可能会出现相应的python包没安装,只要pip或apt-get就行了

然后再运行demo.py就可以了