Caffe安装笔记二:Caffe安装过程

下面开始正题,caffe的安装过程。因为出问题很多,所以实际上我是尝试了python2和python3两种python的接口。下面一并放出来。
1. 安装build-essential
sudo apt-get install
build-essential
这个是一些基本的库,具体包括哪些,安装前确认时会显示,印象中有gcc等等。
2. boost安装
caffe官网给出的是sudo apt-get install --no-install-recommends libboost-all-dev
我不知道他特意加个--no-install-recommends干啥。另外,在installation主页上标明了Boost>=1.55,但是如果用上面那条命令的话,默认装上的是1.54。我现在还不能完全确定1.54是不是不行,但是为了保险起见,请使用
sudo apt-get install libboost1.55-all-dev
关于boost在makefile.config中的配置,这是个坑,下面详细讲讲。
2.1. python2/Anaconda2
对于python2,只要执行完上面的安装就可以了,makefile中的配置项无需做特别设置。
2.2. python3/Anaconda3
对于python3,boost安装方面没啥要留意的。需要特别注意的是makefile.config中,有一行
# Uncomment to use Python 3 (default isPython 2)
PYTHON_LIBRARIES := boost_python-py34python3.5m
这一项很有迷惑性,而且我也迷糊了很久,因为相关有一项是PYTHON_LIB,一开始我以为是相同的重复项。但是如果这句stay comment的话,make caffe和pycaffe都能成功通过,但是使用时却会报错:
ImportError: /home/zero/Documents/caffe-master/python/caffe/_caffe.so:undefined symbol: 
_ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE
这个错误的意思是,boost版本不匹配。
boost.python是啥东西呢?我理解的是boost.python是一个类似翻译器的东西,所以如果你是python3的程序,却用了python2的翻译器,那语法、定义等等各方面必然会有冲突。我记得在某篇帖子中看到过,str、int等等的定义,在两者中是不同的,所以有时会有报错信息说找不到str啦int啦之类。当时没有把没一个错误都记下来。
然后,如果我们去makefile中查找这个变量PYTHON_LIBRARIES,会发现有这么一句:
PYTHON_LIBRARIES ?= boost_python python2.7
这句的意思是说,如果不出意外,使用的是2版本的python和boost.python。但是这里有个问题,如果把makefile.config里面那句uncomment,原来默认的是"PYTHON_LIBRARIES :=boost_python3 python3.5m",直接去掉的话会报错说找不到-lboost_python3。这里我无法解释原理,但是 去/usr/lib/x86_64-linu
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值