(本文大部分为别人整理的摘录,其中加入少许个人安装时候的补充)
由于TX1是ARM架构,其编译与下载与PC上的ubuntu系统有些许不同。以下进行归纳整理:
环境配置
编译环境配置
安装必要的caffe环境
1 | sudo add-apt-repository universe |
在apt安装时,上面有个openCV库通常在刷板子时就自动装进去了(OpenCV4Tegra),所以可以不用管
Caffe下载
1 | git clone https://github.com/BVLC/caffe.git |
编译caffe
所有环境都安装好之后,我们可以caffe的编译了。
首先需要对caffe的配置文件进行修改。使用cuDNN。
1 | cd caffe |
修改配置文件,或使用
1 | sed -i 's/# USE_CUDNN/USE_CUDNN/g' Makefile.config |
另外要注意的是,查看自己cuda版本,需要继续修改Makefile.config使兼容
1 | \# CUDA architecture setting: going with all of them. |
TX1装的cuda版本为7.0,按照文件中的提示,注释相应行。
另外,TX1对这个选项设置还需要作如下改动:
1 | CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ |
添加 -gencode arch=compute_53,code=sm_53
一行
参考:
编译caffe
1 | make -j 3 all |
关于使用make all -j 3 源于以下一段摘录
1 | now compile caffe, remember Do NOT use all the cores by make all -j, or it hangs the system. Instead use the following |
参考:
http://qinhongwei.com/2016/05/08/how-to-install-caffe-on-NVIDIA-TX1/
测试MNIST
我们使用caffe自带的mnist例子来测试caffe是否编译成功。
1 | $ bash ./date/mnist/get_mnist.sh |
如果caffe编译成功,则上面的程序不会报错。
使用g++编译caffe中的classification.cpp文件
使用g++指令编译classification.cpp文件,需要注意一些链接库的位置。
1 | $ g++ classification.cpp `pkg-config –libs –cflags opencv` -I /home/ubuntu/caffe/include -I /home/ubuntu/caffe/build/src -I /usr/local/cuda/include/ -L /home/ubuntu/caffe/build/lib/ -lcaffe -lprotobuf -lhdf5 -lhdf5_cpp -lhdf5_hl -lhdf5_hl_cpp -lleveldb -llmdb -lgflags -lglog -lboost_system -lboost_thread |
编译成功之后,运行生成的a.out文件测试效果。
1 | $ sudo ./a.out deploy.prototxt vgg\_iter\_3600.caffemodel mean.binaryproto label.txt 1.jpg |
注意自己文件的路径,不能照抄