Ubuntu18.04安装caffe cpu

Ubuntu18.04安装caffe

1.安装caffe

1.1. 安装依赖包

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 python-dev

sudo apt-get install libatlas-base-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install python-opencv

如果在安装过程中出现无法定位软件包问题则执行:

sudo  apt-get update

1.2. 下载caffe

git clone git://github.com/BVLC/caffe.git

1.3. 修改caffe下文件Makefile.config

cd caffe
cp Makefile.config.example Makefile.config
 
修改 Makefile.config   
gedit Makefile.config     
 
1. 去掉CPU_ONLY :=1的注释 
2. 注释掉CUDA有关的行: 
#CUDA_DIR := /usr/local/cuda 
#CUDA_DIR := /usr 
#CUDA_ARCH := .... 
#TEST_GPUID := 0 
3. 去掉WITH_PYTHON_LAYER := 1的注释
4. 修改这一行:
# Whatever else you find you need goes here.
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

1.4. 修改caffe下文件Makefile

gedit Makefile    
1.opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs     
后面加入 opencv_imgcodecs  
2. 找到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

注:1.3中的第四项修改和1.4中的第二项修改原因 :在安装hdf5的使用使用的是 sudo apt-get libhdf5-serial-dev(参考 [这个](https://www.jianshu.com/p/ab539e9a7955))

1.5. 编译

make all
Make test
make runtest

2.pycaffe安装

2.1. 安装依赖库

个人认为方法一好

2.1.1 方法一

查看caffe/python/requirement.txt

Cython>=0.19.2
numpy>=1.7.1
scipy>=0.13.2
scikit-image>=0.9.3
matplotlib>=1.3.1
ipython>=3.0.0
h5py>=2.2.0
leveldb>=0.191
networkx>=1.8.1
nose>=1.3.0
pandas>=0.12.0
python-dateutil>=1.4,<2
protobuf>=2.5.0
python-gflags>=2.0
pyyaml>=3.10
Pillow>=2.3.0
six>=1.1.0.
安装以上依赖库
cd caffe/python
for req in $(cat requirements.txt); do pip install $req; done
2.1.2 方法二
~$sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython

~$sudo apt-get install protobuf-c-compiler protobuf-compiler

2.2 添加 PYTHONPATH

sudo gedit /etc/profile
export PYTHONPATH=$PYTHONPATH:/home/XXX/caffe/python:$PYTHONPATH   # xxx为用户名
使上述更改生效
$ source /etc/profile

2.3编译

cd ~/caffe
make pycaffe

2.4 测试

python
import caffe

迷惑:
网上教程讲可以使用sudo apt-get install caffe-cpu 安装caffe(具体细节百度下)。这么操作之后import caffe 是成功的,但是主目录下面并没有文件夹caffe,以至于我不知如何训练。
疑问:这个安装是指安装了pycaffe吗?
接下来我使用sudo apt remove caffe-cpu 卸载了caffe。在使用源码安装的时候,安装pycaffe不用安装依赖库库直接编译pycaffe就成功了(因为卸载了caffe-cpu并不卸载它执行安装的依赖库)。
思考:
朋友安装caffe的时候出现了依赖库版本的问题浪费了很长时间,所以我觉得这条sudo apt-get install caffe-cpu或许可以用来避免这个问题。

2019.8.20补充:迷惑疑问的解答如下:
在ubuntu18.04安装caffe 有两种方式,分为源码安装和命令行(sudo apt-get install)安装。
  • 源码安装方式步骤如上所示,需要自己编译得到二进制文件(放在/build/tools)、编译pycaffe。
  • 命令行安装的二进制文件放在/usr/bin文件夹下,源码安装编译得到的二进制文件都可以在这里找到,比如:caffe、convert_imageset、convert_mnist_data(生成lmdb文件)、compute_image_mean(生成均值文件)等等。有了这些东西我们已经可以进行训练了,当然我们可以下载一份caffe源码来得到其中有用的东西,但无需编译。
    比如当生成均值文件时修改caffe/examples/create_imagenet.sh中用到的二进制文件的位置:
修改之前:TOOLS=build/tools $TOOLS/convert_imageset
修改之后:convert_imageset

因为/usr/bin是系统默认的path,可以直接找到,所以不需要前缀。

  • 命令行安装还会安装python3版本的pycaffe(在/usr/lib/python3/disk-packets/caffe),这就是在python3中import caffe会成功的原因。
思考的进一步理解

上述思考是有道理的,这相当于一键安装了所有的依赖包。当你想要源码安装但是依赖老出问题的话,我们可以使用这个命令安装之后再卸载,这个时候所有的caffe依赖已经安装好了,编译可能就会顺利。

3. 引用

1.https://blog.csdn.net/Y_AOZHEN/article/details/84137377
2. https://blog.csdn.net/qq_24574309/article/details/78187557

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值