1 安装显卡驱动(已经安装过显卡驱动的,可以忽略此步骤)
通过.run进行安装的一定要这么输入:
sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
安装时一定要加上红色字体的部分。从自己安装的经验看,加上比较保险。
2 安装cuda和cudnn按照安装成功的操作流程进行安装
3 安装caffe依赖包:
sudo apt-get install build-essential cmake git pkg-config
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libatlas-base-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python3-pip
sudo apt-get install libopencv-dev
sudo apt-get install python3-dev
sudo apt-get install python3-numpy python3-scipy
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
4 安装caffe
git clone https://github.com/BVLC/caffe.git
cd caffe
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
修改配置文件Makefile.config
若使用cudnn,则将# USE_CUDNN := 1 修改成: USE_CUDNN := 1
若要使用python来编写layer,则需要将# WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1
重要的一项将# 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
#OPENCV_VERSION := 3不做更改,否则出错(若使用的opencv版本是3的,则将# OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3)
关于caffe中Makefile.config的配置
把PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
改为:
#PYTHON_INCLUDE := /usr/include/python2.7 \
#/usr/lib/python2.7/dist-packages/numpy/core/include
把# PYTHON_LIBRARIES := boost_python3 python3.5m
# PYTHON_INCLUDE := /usr/include/python3.5m \
# /usr/lib/python3.5/dist-packages/numpy/core/include
的注释去掉,把#号去掉就可以了。
原本这里关于boost的设置是boost_python3,但是你的系统里可能并不是叫这个名字,所以要执行:
locate boost_python
另外需要检查PYTHON_INCLUDE := /usr/include/python3.5m \
/usr/lib/python3.5/dist-packages/numpy/core/include的numpy的路径
的路径对不对,我的修改为了:
PYTHON_INCLUDE := /usr/include/python3.5m \
/usr/lib/python3/dist-packages/numpy/core/include,也有numpy在这个目录下。需要配置的时候自己好好检查/usr/local/lib/python3.5/dist-packages/numpy/core/include
修改Makefile文件
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
将:
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
编辑/usr/local/cuda/include/host_config.h
将#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
查看python版本
sudo python #默认python是2.7版本
系统自带python3.5版本,将python3.5版本链接到python3,操作如下:
说明:如果想python2.7和3.5版本的caffe并存。可以不执行以下命令:
sudo rm python
sudo ln -s python3 python
关于libboost1.55(查看libboost版本如果版本大于1.5,可以忽略下面的步骤)
caffe想用python3.5,有libboost>=1.5的要求,网上很多的教程都让用apt-get libboost1.55-all-dev安装,但是会遇到无法定位安装包的问题,更新源之 后也没有效果,但其实可以只安装libboost1.55。执行如下命令
sudo apt-get install libboost1.55-dev #一定要安装的
sudo apt-get install libboost1.55-all-dev #不一定安装成功,但是不影响。
如果你的libboost>=1.5版本可以不安装。我没有安装(因为我的版本是1.58)
安装各种python的依赖包:
sudo apt-get install python3-pip
pip3 --version #查看pip3版本,确认安装成功 。可以先查看pip3的版本。如果已经安装了。可以不装
进入caffe/python目录,执行:
for req in $(cat requirements.txt); do sudo pip3 install $req; done #注意是 pip3,如果是普通用户要加sudo
另外说明如果网速不好,安装时会报readtime out下载超时。可以使用下面的命令:
for req in $(cat requirements.txt); do sudo pip3 --default-timeout=1000 install -U $req; done
安装完成后,返回caffe的根目录,查看是否安装成功,执行:
sudo pip3 install -r python/requirements.txt #注意是 pip3,如果是普通用户要加sudo
说明:安装成功的项会有 successfully XXX。个别没有安装成功的,可以手动安装。
关于手动安装
以下安装的时候,下载总失败,通过手动安装:
- sudo pip3 install matplotlib==2.2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
- sudo pip3 install scikit-image==0.13.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
- sudo pip3 install scipy==1.3.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
- sudo pip3 install scipy==1.3.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
- sudo pip3 install numpy==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
关于numpy的安装
caffe想用python3.5,有numpy>=1.7的要求,这里我也不知道装的啥,但是通过如下命令可以解决问题:
sudo apt-get install python-numpy
关于protobuf的版本
caffe想用python3.5,有protobuf>=3的要求,先查看当前版本:
protoc --version
wget https://github.com/google/protobuf/releases/download/v3.0.0/protobuf-cpp-3.0.0.tar.gz
tar zxvf protobuf-cpp-3.0.0.tar.gz && cd protobuf-3.0.0
sudo apt-get install autoconf automake libtool curl make g++ unzip
./autogen.sh
./configure
make check
sudo make install
sudo ldconfig
查看当前protobuf版本,是否升级到3.0.0
protoc --version
sudo protoc –version
说明:其他版本的protobuf安装与3.0版本类似,安装其他版本时,可以自行百度搜索安装步骤
编译的时候报错问题: - No Module Named:scikit-image
安装
sudo pip3 install scikit-image - No Module Named:pydot
安装
sudo pip3 install pydot
以上设置完成后,可以编译caffe,终端输入:
make all
make test
make runtest
make pycaffe
同时,sudo gedit ~/.bashrc打开.bashrc文件,在末尾声明Python文件的路径,即写入:
export PYTHONPATH=/home/yd/caffe/python:$PYTHONPATH
请根据自己电脑的实际目录进行填写。这是我自己的电脑的目录
最后,终端输入python,然后再输入import caffe,如果无问题则安装成功。
编译成功后,python2.7与pthon3.5下验证caffe是否安装成功,如下图所示;