check List
1.检查 CUDA nvcc -V环境是否安装正常 如果不正常则去安装 NVIDIA 、CUDA 、CUDNN (版本搭配)
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
2.由于Python2 即将落幕 所以我们这次在Ubuntu18.04 自带的 python3.6上进行
3.sudo ldconfig 检查是否有软连接没有生效
正式安装
依赖解决:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
从源代码编译Opencv
进入官网 : http://opencv.org/releases.html , 下载 3.x系列 解压到你要安装的位置,命令行进入已解压的文件夹
mkdir build # 创建编译的文件目录
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8 #编译 注意自己的核数
在执行 make -j8 命令编译到 92% 时可能会出现以下错误,是由于opecv3.1与cuda8.0不兼容导致的。解决办法:修改 /opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp 文件内容,如图:
编译成功后安装:
sudo make install
安装完成后通过查看 opencv 版本验证是否安装成功:
pkg-config --modversion opencv
1.
安装caffe-SSD
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
2.
再次检查依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
3.
修改Makefile.config文件,复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。
cp Makefile.config.example Makefile.config
sudo vim Makefile.config
应用 cudnn
将第5行的 # 取消
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
应用 opencv 版本
将第21行的 # 取消
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
使用 python 接口
将第89行的 # 取消
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
修改 python 路径
将 92/93行的 代码修改如下
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
注释Python2 切换python3
代码修改如下 否则会编译Python.h and numpy/arrayobject.h. 出错
将 67/68行的 实际行数稍微有些出路可能
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
将77/78 行的 注释解除 并更新 为Python3.6 实际行数稍微有些出路可能
# PYTHON_LIBRARIES := boost_python3 python3.5m
# PYTHON_INCLUDE := /usr/include/python3.5m \
# /usr/lib/python3.5/dist-packages/numpy/core/include
PYTHON_LIBRARIES := boost_python3 python3.6m
PYTHON_INCLUDE := /usr/include/python3.6m \
/usr/lib/python3.6/dist-packages/numpy/core/include
如果最后提示不支持compute_20,就把这句删掉,最后效果是
nvcc fatal : Unsupported gpu architecture ‘compute_20’
Makefile:588: recipe for target ‘.build_release/cuda/src/caffe/solvers/sgd_solver.o’ failed
make: *** [.build_release/cuda/src/caffe/solvers/sgd_solver.o] Error 1
make: *** Waiting for unfinished jobs…
建议显卡直接改成如下:
CUDA_ARCH := -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
然后修改caffe 目录下的 Makefile 文件: 注意不是Makefile.config文件
sudo vim Makefile
将第409行 替换为如下
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
将:181行替换为如下
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
将:265行 替换如下(我的环境太新除了这个问题【可选项】当你出现了
.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail_106501::put_mem_block(void*)')
LIBRARIES += boost_thread stdc++
改为:
LIBRARIES += boost_thread stdc++ boost_regex
4.
下载python 环境依赖包 :
去到caffe根目录中的python目录中运行 …/caffe/python
5.
设置系统python环境 在末尾添加环境变量
vim ~/.bashrc
export PYTHONPATH="/opt/build/caffe/python" # 此处为caffe 的rootdir 目录
source ~/.bashrc
6.
编译caffe保存 开始编译,在 caffe 目录下执行 如果出错 建议修改完毕使用 make clean 继续Try
make all -j32 代表几核并行编译 请与自己电脑量力而行 后续将不再重复声明哇
make test -j32
make pycaffe
make runtest -j32
“/ usr / bin / ld:在Caffe编译中找不到-lopenblas”错误
即使在克隆OpenBlas之后包括基本包,并且将在14.04和16中链接相应的库。
apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev
apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev
到此 安装caffe 结束
7.
更改caffe 源码: https://blog.csdn.net/sinat_14916279/article/details/56489601
安装参考资料:https://blog.csdn.net/lukaslong/article/details/81390276
https://note.youdao.com/ynoteshare1/index.html?id=2abcf621d178f131e7491099112cee30&type=note