linux下caffe环境搭建

我用的是linux mint 18.2 64位,因为是虚拟机安装,所以只能用CPU。因为我的linux mint18.2是基于ubuntu16.04版本的所以按官方文档安装说明http://caffe.berkeleyvision.org/install_apt.html点击打开链接,里面的<17.04进行安装。

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 libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libatlas-base-dev


因为我首先系统是新做的,python也没有安装其它的。都是系统只带的,后面我会说安装python anaconda的应该怎么弄。

下面是对Makefile.config进行修改,首先执行下面linux命令。复制出一个Makefile.config

cp Makefile.config.example Makefile.config

因为我用的是CPU。所以把

CPU_ONLY := 1
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/hdf5/serial

前面的注释去掉

然后执行

make all

C++环境的就编译完成了,因为C++编译时不用python所以python的设置可以不用。都用默认的就可以。

下面是python的配置

首先我安装的是anaconda3。因为我用的是python3.6

然后修改Makefile.config文件中的

ANACONDA_HOME := /home/learnml/anaconda3
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

下面是在编译make all和make pycaffe时出现的一些问题的解决。

1.cannot find -lboost_python3

解决办法:

首先去/usr/lib/x86_64-linux-gnu目录下查看是否有python3版本的libboost,如果有类似libboost_python35.so但是没有libboost_python3.so则需要手动建立连接。

sudo ln -s libboost_python-py35.so libboost_python3.so 
2.version `GLIBCXX_3.4.21' not found

解决办法:

安装anaconda3下面的libgcc。

conda install libgcc

3 std::__cxx11::basic_string报错。

解决办法:

这个是因为anaconda3里面的的文件与C++的编译冲突了。这个只能安完anaconda3后在编译make all时才会出现。

解决办法是把

ANACONDA_HOME := /home/learnml/anaconda3 这个的路径改成不存在的。

改成:ANACONDA_HOME := /home/learnml/anaconda 这样在make all时就不会报这个错了。然后在make pycaffe时在把路径改回正确的。

4. pyconfig.h:No such file or Directory 

解决办法:

这个是在make all时报的。把

#WITH_PYTHON_LAYER := 1--注释打上。注掉这个,在make all

5.ImportError: /home/zero/Documents/caffe-master/python/caffe/_caffe.so:undefined symbol:   
_ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

解决办法:这个是在python环境里,import caffe时报的错。

PYTHON_LIBRARIES := boost_python3 python3.6m--把这个注释去掉。
6.No module named google.protobuf.internal

解决办法:这个也是在python环境下,import caffe时报的错。

在linux 环境下,${anaconda3}/bin 下。

sudo ./conda install protobuf


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章