1. 首先安装caffe的依赖包:
user@user-ubuntu:~$sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
user@user-ubuntu:~$sudo apt-get install --no-install-recommends libboost-all-dev
user@user-ubuntu:~$sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2.安装英伟达的驱动以及cuda,官网下载 .run文件即可。安装步骤不做概述,百度链接太多,nouveau记得禁用。
3.安装BLAS :
安装atlas 用: user@user-ubuntu:~$sudo apt-get install libatlas-base-dev 或者安装openblas 以及intel的 MKL。
我这里用的是atlas
4.Python 安装以及python 的一些依赖包安装:
user@user-ubuntu:~$user@user-ubuntu:~$sudo apt-get install python-dev
user@user-ubuntu:~$sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags ipython
5. 1。
6. CUDNN的安装
cuDNN是为DNN设计的CPU加速库。它能在多种情况下帮助提升执行速度。为了下载cuDNN库,你需要到Nvidia网站https://developer.nvidia.com/cudnn上进行注册。几小时到几个工作日就能够批准。一旦注册批准,下载Linux版本的cuDNN v6最新版本是cuDNN v6,但是不是所有的工具都支持。
·
·
解压并复制文件
·
cd ~/Downloads/tar xvf cudnn*.tgz
cd cuda
sudo cp */*.h /usr/local/cuda/include/sudo cp */libcudnn* /usr/local/cuda/lib64/sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
7.这里需要注明一步操作是必须执行的,否则后面make的时候会报错。
Sudo nano /etc/ld.so.conf 然后添加一行:/usr/local/cuda/lib64
保存退出,然后sudo ldconfig
8.下载caffe资源包
1.git clonehttps://github.com/BVLC/caffe.git
2. cd caffe/
3. Sudo cp Makefile.config.example Makefile.config
4. 编辑Makefile.config
根据个人情况修改文件:
a.若使用cudnn,则
将#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
b.若使用的opencv版本是3的,则参照下列修改,若不使用opencv这里不用动
将#OPENCV_VERSION := 3
修改为: OPENCV_VERSION :=3
c.若要使用python来编写layer,则 (默认这里不需要改)
将#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
d. 重要的一项 :
将# Whatever else you find you need goes here.下面的
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/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.
9.修改Makefile 文件(注意这里是makefile上面改的是makefile.config)
打开makefile文件,做如下修改:
将:NVCCFLAGS+=-ccbin=$(CXX)-Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX)-Xcompiler -fPIC $(COMMON_FLAGS)
10.然后编译caffe
make all -j4
make test -j4
make runtest -j4
make pycaffe
上述如果没有任何报错,都操作正常的话,这里是完全可以make成功的。然后导入caffe
在编译完后的caffe目录下:
echo 'export CAFFE_ROOT=$(pwd)' >> ~/.bashrc
echo 'export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH' >> ~/.bashrc
source .bashrc
然后cd到caffe-master/python目录下执行python
>>>
在>>> 这个后面输入import caffe 导入成功则OK。
导入成功:即没有任何报错
Caffe上配置和运行MNIST (caffe测试)
Caffe默认情况会安装在CAFFEROOT,就是解压到的那个目录,例如: /home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1. 数据预处理
可以用下载好的数据集,也可以重新下载,网速快可以直接下载,具体操作如下:
$ cd data/mnist
$ sudo sh ./get_mnist.sh
2. 重建LDB文件,就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpe文件都要处理成这个格式
$ cd examples/mnist
$ sudo sh ./create_mnist.sh
生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集
PS: 这里可能会遇到一个报错信息:
Creating lmdb...
./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found
解决方法是,直接到caffe-master的根目录执行,新版的caffe,基本上都得从根目录执行。
~/caffe-master$ sudo sh examples/mnist/create_mnist.sh
确保新生成的2个文件mnist-train-lmdb 和 mnist-test-lmdb位于create_mnist.sh同目录下
3. 训练mnist
~/caffe-master$ sudo sh examples/mnist/train_lenet.sh
屏幕显示如下:
……
I0329 16:43:03.739568 4155 solver.cpp:403] Iteration 9800, lr = 0.00599102
I0329 16:43:03.968662 4155 solver.cpp:191] Iteration 9900, loss = 0.00557684
I0329 16:43:03.968705 4155 solver.cpp:206] Train net output #0: loss = 0.00557684 (* 1 = 0.00557684 loss)
I0329 16:43:03.968732 4155 solver.cpp:403] Iteration 9900, lr = 0.00596843
I0329 16:43:04.198199 4155 solver.cpp:317] Snapshotting to examples/mnist/lenet_iter_10000.caffemodel
I0329 16:43:04.202082 4155 solver.cpp:324] Snapshotting solver state to examples/mnist/lenet_iter_10000.solverstate
I0329 16:43:04.205214 4155 solver.cpp:228] Iteration 10000, loss = 0.00457862
I0329 16:43:04.205276 4155 solver.cpp:247] Iteration 10000, Testing net (#0)
I0329 16:43:04.307497 4155 solver.cpp:298] Test net output #0: accuracy = 0.9906
I0329 16:43:04.307528 4155 solver.cpp:298] Test net output #1: loss = 0.02885 (* 1 = 0.02885 loss)
I0329 16:43:04.307541 4155 solver.cpp:233] Optimization Done.
I0329 16:43:04.307549 4155 caffe.cpp:121] Optimization Done.
运行完结果如下:
生成四个新文件
lenet_iter_10000.caffemodel
lenet_iter_10000.solverstate
lenet_iter_5000.caffemodel
lenet_iter_5000.solverstate
还有很多测试的办法,可以参见官网,至此ubuntu16.04 caffe安装完毕。