Ubuntu配置caffe可以分为一下几个步骤:
1.安装开发依赖包
sudo apt-get install build-essential
sudo apt-get install vim cmake git
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
2.安装gpu驱动
首先
sudo add-apt-repository ppa:graphics-drivers/ppa
然后跟新本地仓库
sudo apt-get update
然后安装驱动,384是驱动版本
sudo apt-get install nvidia-384
最后
nvidia-smi
查看是否安装驱动成功
3.安装cuda
首先
到这里下载你需要版本的cuda仓库
然后
进入你下载deb 的目录安装仓库,将deb改为你自己的文件名
sudo dpkg -i cuda-repo-cuda-repo-ubuntu1404_6.5-14_amd64.deb
然后,更新本地仓库
sudo apt-get update
跟新过程可能会报这样的错误“Ubuntu“无法解析或打开软件包的列表或是状态文件”的解决办法”,可以参考这里解决,如下:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
最后
开始安装cuda以及显卡驱动(安装cuda的同时就会把显卡驱动也全部安装好,这个真的很方便。但是下载的时间有点长。)
sudo apt-get install cuda
安装完之后你需要设置环境变量
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
4.安装cudnn(用于深度学习加速)
1.到这里注册下载,貌似注册验证要花一两天的样子,嫌麻烦的可以直接到Linux公社资源站下载
2 完后到下载目录,执行以下命令安装
tar -zxvf cudnn-8.0-linux-x64-v5.0-ga.tgz
cd cudnn/cuda
sudo cp lib64* /usr/local/cuda/lib64/
cd cudnn/cuda/include
sudo cp cudnn.h /usr/local/cuda/include/
再更新下软连接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5.0
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5.0
sudo ln -s libcudnn.so.5.0 libcudnn.so
3 设置环境变量
gedit /etc/profile
在打开的文件尾部加上
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后执行以下命令使之生效
source /etc/profile
同时创建以下文件
sudo vim /etc/ld.so.conf.d/cuda.conf
内容是
/usr/local/cuda/lib64
保存后,使之生效
sudo ldconfig
安装CUDA Sample 及 ATLAS
cd /usr/local/cuda/samples
sudo make all -j8
安装ATLAS
sudo apt-get install libatlas-base-dev
1.安装Caffe需要的Python包
首先下载caffe
或者
git clone https://github.com/BVLC/caffe.git
2.转到caffe的python目录,安装scipy
cd caffe/python
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
3.最后安装requirement里面的包,需要root权限
sudo su
for req in $(cat requirements.txt); do pip install $req; done
如果提示报错,一般是缺少必须的包引起的,直接requirement中根据提示 pip install 就行了。
安装完后退出root权限
exit
4.编译caffe
首先修改配置文件,回到caffe目录
cd ~/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config
这里仅需修改两处:
i) 使用cuDNN
“#USE_CUDNN := 1”
这里去掉#,取消注释为
USE_CUDNN := 1
ii) 修改python包目录,这句话
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
改为
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
因为新安装的python包目录在这里: /usr/local/lib/python2.7/dist-packages/
接下来就好办了,直接make
make all -j4
make test
make runtest
make pycaffe
这时候cd 到caffe 下的 python 目录,试试caffe 的 python wrapper安装好没有:
python
import caffe
如果不报错,那就说明安装好了。
常见安装错误和解决办法:
1.找不到链接文件:/usr/bin/ld: cannot find -lxxx
/usr/bin/ld: cannot find -lcblas
/usr/bin/ld: cannot find -latlas
collect2: error: ld returned 1 exit status
make: * [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1
这说明在/usr/bin/找不到xxx.so的链接文件,解决方法有很多,我说其中一个在Makefiel.config中修改LIBRARY_DIRS 把你链接文件所在的路径加上:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/local/cuda/lib64
然后更新链接
sudo ldconfig -v
如:我把/usr/lib /usr/local/cuda/lib64加入到LIBRARY_DIRS中
或者 把xxx的链接文件 cp 到 LIBRARY_DIRS 中。参考这个博客
2.在成功编译caffe的源码之后,可以在python环境中使用caffe。
在Ubuntu环境下,打开python解释程序,输入import caffe时:出现以下错误
>>>import caffe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named caffe
解决思路
基本思路是把caffe中的python导入到解释器中
解决方法
放到配置文件中,可以永久有效果,命令操作如下:
把环境变量路径放到 ~/.bashrc文件中,打开文件
sudo vim ~/.bashrc
在文件下方写入
export PYTHONPATH=~/caffe/python:$PYTHONPATH
上述语句中 “~” 号表示caffe 所在的根目录。如:/xxx/home
关闭文件,在终端写入下面语句,使环境变量生效
source ~/.bashrc
参考这个博客
3.出现 ImportError: No module named google.protobuf.internal
是requirement中 protobuf>=2.5.0 没安装好
解决: 重新安装
进入管理权限
sudo ru
安装
pip install protobuf>=2.5.0