ubuntu 17.10 + caffe(CPU)环境搭建
2018-01-15 12:33
351 查看
如果需要编译Python的caffe库,需要安装Python,这里就不详述Python的安装了
1.caffe依赖库安装
可以通过apt-get 安装
或者通过
源文件安装,这里我打包了所需的源文件库,自己也可以去官网下载
下载地址:http://download.csdn.net/download/yanhaiming56/10205999
以上这几个源文件都是直接解压,进入文件夹,执行:
./configure (如果这里默认安装都系统目录下,如果想安装在自己的目录,可以 执行 ./configure --prefix="自己的目录")
make all -j8
sudo make install (如果confiure配置了prefix,就安装在了指定的目录)
a) 解压源文件编译,执行
./bootstrap.sh
./b2
sudo ./b2 install
b) 上一步执行完毕可能没有编译boost的Python库,再次执行
./bootstrap.sh
./b2 --with-python include="pyconfig.h所在目录"(pyconfig.h所在位置,可以通过find命令去找,如果是anaconda,在anaconda/inlude/python3.6m,我这里是Python3.6,所以是Python3.6m,根据自己的Python版本去找对应的pyconfig.h所在目录)
sudo ./b2 install
sudo apt-get install cmake
sudo apt-get install cmake-gui
在命令行直接执行cmake-gui,如图:
在where is the source code 输入源码路径,在where to build the binaries (一般在源文件目录新建一个文件夹,比如build,这样便于找到)输入构建路径,点击左下方configure,会生成配置列表,是一个name-value,其中build_shared_libs要选上,然后点击generate。
然后就是进入where to build the binaries 所指定的目录下,执行
make all -j8
sudo make install
pip list | grep "hdf5"
我这里已经安装最新的版本1.10.1,我提供的打包库文件源码也是1.10.1,这个是支持cmake编译的,但是我还是用了make方式编译
解压CMake-hdf5-1.10.1.tar.gz,进入CMake-hdf5-1.10.1/hdf5-1.10.1,执行
./configure --prefix="/usr/local/hdf5" (这个一定要指定目录
make all -j8
sudo make install
make all -j8
sudo cp out-shared/libleveldb.so.1.20 /usr/lib
sudo cp out-static/*.a /usr/lib
sudo cp -r ./include/leveldb/ /usr/local/include/
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so.1
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so
如果要编译Python库,其中,name为PYTHON3_*的配置要指定到对应的路径(如果环境变量PATH设置了Python路径,cmake会自动识别,但是library和dir不会识别到),PYTHON2_*同理
然后就是:make sudo make install
以上工作都做完执行
sudo ldconfig
找到
/usr/local/hdf5就是在编译安装hdf5时指定的安装目录
修改
如果没有
修改Makefile.config,如下:
CPU_ONLY := 1
USE_OPENCV := 1
OPENCV_VERSION := 3
#如果使用的是anaconda安装的Python设置如下
ANACONDA_HOME := anaconda所在目录
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python3.6m \
$(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include
PYTHON_LIBRARIES := boost_python3 python3.6m
PYTHON_LIB := $(ANACONDA_HOME)/lib
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/hdf5/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/local/hdf5/lib
这些都配好,就可以执行
make all -j8
make test -j8
make runtest -j8
make pycaffe
该错误是因为cmake编译opencv时没有选择build_imgcodecs,并且不要选择build_world,重新安装opencv
b)
make runtest
这个错误是因为gcc版本过低,安装更新版本的gcc,如果直接sudo apt-get install build-essential依然获取的是低版本,那就下载源码安装。
这个错误就是找不到python库,编辑.bahsrc添加
export LD_LIBRARY_PATH="anaconda目录/lib:$LD_LIBRARY_PATH"
保存,source ~/.bashrc
c)以下错误
是因为python的hdf5与系统中安装的hdf5不一致,所以这也是为什么前面hdf5安装的时候我一再强调版本和安装路径。找到和Python的hdf5同一版本的hdf5源码进行安装
在文件最后加上
export PYTHONPATH="caffe目录/python:$PYTHONPATH"
保存退出vi,执行source ~/.bashrc
python要用caffe还要安装protobuf
pip install protobuf
最后执行
python进入Python命令行
输入import caffe
如果没有报错,说明caffe成功安装。
1.caffe依赖库安装
可以通过apt-get 安装
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
或者通过
源文件安装,这里我打包了所需的源文件库,自己也可以去官网下载
下载地址:http://download.csdn.net/download/yanhaiming56/10205999
① Protobuf glog lmdb openblas
由于我配置的是python3.6的接口,因此
protobuf的版本必须大于3.0以上
以上这几个源文件都是直接解压,进入文件夹,执行:
./configure (如果这里默认安装都系统目录下,如果想安装在自己的目录,可以 执行 ./configure --prefix="自己的目录")
make all -j8
sudo make install (如果confiure配置了prefix,就安装在了指定的目录)
② boost
这里是boost1.66a) 解压源文件编译,执行
./bootstrap.sh
./b2
sudo ./b2 install
b) 上一步执行完毕可能没有编译boost的Python库,再次执行
./bootstrap.sh
./b2 --with-python include="pyconfig.h所在目录"(pyconfig.h所在位置,可以通过find命令去找,如果是anaconda,在anaconda/inlude/python3.6m,我这里是Python3.6,所以是Python3.6m,根据自己的Python版本去找对应的pyconfig.h所在目录)
sudo ./b2 install
③ gflags snapppy
这两个源文件使用cmake,这里我使用cmake-gui,如果没有cmake-gui就先安装sudo apt-get install cmake
sudo apt-get install cmake-gui
在命令行直接执行cmake-gui,如图:
在where is the source code 输入源码路径,在where to build the binaries (一般在源文件目录新建一个文件夹,比如build,这样便于找到)输入构建路径,点击左下方configure,会生成配置列表,是一个name-value,其中build_shared_libs要选上,然后点击generate。
然后就是进入where to build the binaries 所指定的目录下,执行
make all -j8
sudo make install
④ hdf5
如果需要编译Python版caffe,这个要使用和Python安装的hdf5的版本一至,查看Python安装的hdf5版本,执行pip list | grep "hdf5"
我这里已经安装最新的版本1.10.1,我提供的打包库文件源码也是1.10.1,这个是支持cmake编译的,但是我还是用了make方式编译
解压CMake-hdf5-1.10.1.tar.gz,进入CMake-hdf5-1.10.1/hdf5-1.10.1,执行
./configure --prefix="/usr/local/hdf5" (这个一定要指定目录
make all -j8
sudo make install
④ leveldb
解压这个源文件,进入源文件目录,执行make all -j8
sudo cp out-shared/libleveldb.so.1.20 /usr/lib
sudo cp out-static/*.a /usr/lib
sudo cp -r ./include/leveldb/ /usr/local/include/
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so.1
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so
⑦ atlas-devel
这个源码编译安装有问题,直接使用apt-get安装sudo apt-get install liblapack-dev libatlas-base-dev
opencv
依然采用cmake-gui方式生成build如果要编译Python库,其中,name为PYTHON3_*的配置要指定到对应的路径(如果环境变量PATH设置了Python路径,cmake会自动识别,但是library和dir不会识别到),PYTHON2_*同理
然后就是:make sudo make install
以上工作都做完执行
sudo ldconfig
Caffe编译
解压caffe,进入caffe目录cd caffe vi Makefile
找到
# Complete build flags其下的
COMMON_FLAGS +=后面加上
-I/usr/local/hdf5/include
LDFLAGS +=后面加上
-L/usr/local/hdf5/lib
/usr/local/hdf5就是在编译安装hdf5时指定的安装目录
修改
Makefile.config
如果没有
Makefile.config,
cp Makefile.config.example Makefile.config vi Makefile.config
修改Makefile.config,如下:
CPU_ONLY := 1
USE_OPENCV := 1
OPENCV_VERSION := 3
#如果使用的是anaconda安装的Python设置如下
ANACONDA_HOME := anaconda所在目录
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python3.6m \
$(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include
PYTHON_LIBRARIES := boost_python3 python3.6m
PYTHON_LIB := $(ANACONDA_HOME)/lib
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/hdf5/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/local/hdf5/lib
这些都配好,就可以执行
make all -j8
make test -j8
make runtest -j8
make pycaffe
在执行以上几个make时,常出现的错误
a) undefined reference to cv::imread之类的错误该错误是因为cmake编译opencv时没有选择build_imgcodecs,并且不要选择build_world,重新安装opencv
b)
make runtest
.build_release/tools/caffe .build_release/tools/caffe: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/HY/caffe/caffe/.build_release/tools/../lib/libcaffe.so.1.0.0) .build_release/tools/caffe: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/lib/libopencv_core.so.3.1) .build_release/tools/caffe: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/lib/libopencv_imgcodecs.so.3.1) make: *** [runtest] Error 1
这个错误是因为gcc版本过低,安装更新版本的gcc,如果直接sudo apt-get install build-essential依然获取的是低版本,那就下载源码安装。
error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
这个错误就是找不到python库,编辑.bahsrc添加
export LD_LIBRARY_PATH="anaconda目录/lib:$LD_LIBRARY_PATH"
保存,source ~/.bashrc
c)以下错误
Warning! ***HDF5 library version mismatched error*** The HDF5 header files used to compile this application do not match the version used by the HDF5 library to which this application is linked. Data corruption or segmentation faults may occur if the application continues. This can happen when an application was compiled by one version of HDF5 but linked with a different version of static or shared HDF5 library. You should recompile the application or check your shared library related settings such as 'LD_LIBRARY_PATH'. You can, at your own risk, disable this warning by setting the environment variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'. Setting it to 2 or higher will suppress the warning messages totally. Headers are 1.8.3, library is 1.8.17
是因为python的hdf5与系统中安装的hdf5不一致,所以这也是为什么前面hdf5安装的时候我一再强调版本和安装路径。找到和Python的hdf5同一版本的hdf5源码进行安装
最后配置Python路径
编辑.bashrc文件vi ~/.bashrc在文件最后加上
export PYTHONPATH="caffe目录/python:$PYTHONPATH"
保存退出vi,执行source ~/.bashrc
python要用caffe还要安装protobuf
pip install protobuf
最后执行
python进入Python命令行
输入import caffe
如果没有报错,说明caffe成功安装。
相关文章推荐
- 深度学习环境搭建(二)-Ubuntu系统下配置caffe(CPU)
- Caffe学习系列(一)Ubuntu16.04下搭建编译Caffe环境,并运行MNIST示例(仅CPU)
- Ubuntu16.04搭建caffe环境(cpu-only)与Python调用
- 深度学习--【1】Ubuntu下caffe环境搭建,CPU
- ubuntu14.04+CPU环境下搭建caffe,python接口以及运行fast-rcnn实例
- caffe环境的搭建(Ubuntu14.04 64bit,无CUDA,caffe在CPU下运行)
- ubuntu16.04+opencv3+anaconda2+caffe 环境搭建(cpu版本)
- Ubuntu环境下TensorFlow 的环境搭建(二)安装TensorFlow(CPU版)
- Ubuntu16.04+Anaconda3环境下安装caffe-cpu出现libboost1.55找不到的问题
- ubuntu 15.04 搭建caffe深度学习环境流程及遇到的问题
- Ubuntu16.04下Caffe环境搭建:cuda8.0 + opencv3.2.0
- [转]caffe+Ubuntu14.0.4 64bit 环境配置说明(无CUDA,caffe在CPU下运行) --for --Amd
- Ubuntu16.04上caffe环境的搭建
- 虚拟机Ubuntu16,caffe环境搭建
- 环境搭建:Ubuntu16.04+CUDA8.0+cuDNN5.1+OpenCV3.1+Caffe+Docker
- 在Ubuntu17.10搭建pytorch环境
- 在Ubuntu17.10上使用CPU运行caffe的SSD
- 在ubuntu上搭建caffe环境
- 如何在一个全新的ubuntu中搭建caffe(CPU only)
- [置顶] Ubuntu14.04+Anaconda+Cuda+Cudnn+Caffe环境搭建配置