1、Caffe的安装
安装依赖项
$ sudo apt-get install -y libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
$ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get install -y python3-numpy python3-scipy python3-matplotlib python3-sklearn python3-skimage python3-h5py python3-protobuf python3-leveldb python3-networkx python3-nose python3-pandas python3-gflags Cython ipython

如果安装过程中出现无法定位软件包
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get update
$ git clone git://github.com/BVLC/caffe.git

$ cd caffe
$ cp Makefile.config.example Makefile.config

修改 Makefile.config
$ sudo vim Makefile.config
去掉CPU_ONLY :=1的注释
去掉OPENCV_VERSION:=3的注释
注释掉CUDA有关的行:
#CUDA_DIR := /usr/local/cuda
#CUDA_DIR := /usr
#CUDA_ARCH := …
#TEST_GPUID := 0

注释掉Python2的路径,去掉Python3的注释,修改为
PYTHON_LIBRARIES :=boost_python3 python3.6m
PYTHON_INCLUDE := /usr/include/python3.6m /usr/lib/python3.6/dist-packages/numpy/core/include

去掉WITH_PYTHON_LAYER := 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 /usr/lib/x86_64-linux-gnu/hdf5/serial

去掉TEST_GPUID := 0的注释

修改 caffe/examples/cpp_classification/classification.cpp文件
加入
#include <opencv2/imgproc/types_c.h>
#include <opencv2/objdetect/objdetect_c.h>

修改完成后编译
$ sudo make all –j4
$ sudo make test
$ sudo make runtest
$ sudo make pycaffe
编译完成后测试是否可用
$ cd python
$ python
#如果出现
Python 3.6.8 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

import caffe

出现错误需要重新编译,重新编译命令如下:
$ sudo make clean
$ sudo make all –j4
$ sudo make test
$ sudo make runtest
$ sudo make pycaffe

2、Caffe安装的常见错误

出现问题:
ImportError: cannot import name ‘_validate_lengths’
解决方案:
$ sudo vim /usr/lib/python3/dist-package/skimage/util/arraycrop.py
修改如下:
import numpy as np
from distutils.version import LooseVersion as Version
old_numpy=Version(np.Version) < Version(‘1.16’)
if old_numpy:
from numpy.lib.arraypad import _validate_lengths
else:
from numpy.lib.arraypad import _as_pairs

出现问题:
编译caffe时提示错误/usr/bin/ld:cannot find –lhdf5_hl
解决方案:
更改Makefile:在Makefile中作如下更改:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

出现问题:
Cannot find –lpython3.5m
解决方案:
可能是因为Makefile.config中python3的注释打开了,在编译时不用打开注释,直接修改python2的内容为python3即可。

出现问题:
如果不报错就是python的接口配置成功,如果:
XXXX@amax:~/caffe$ python
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

import caffe
Failed to include caffe_pb2, things might go wrong!
Traceback (most recent call last):
File “”, line 1, in
File “/home/gaoshuai/caffe/python/caffe/init.py”, line 4, in
from .proto.caffe_pb2 import TRAIN, TEST
File “/home/gaoshuai/caffe/python/caffe/proto/caffe_pb2.py”, line 6, in
from google.protobuf.internal import enum_type_wrapper
ModuleNotFoundError: No module named ‘google’

解决方案:
需要在python内重装protobuf,输入如下命令:
$ sudo pip3 install protobuf

出现问题:
安装Caffe框架时, make -j8; make pycaffe都正常。 测试python接口是否可用时出现了错误:

import caffe
Traceback (most recent call last):
File “”, line 1, in
File “/home/jcole/Git/caffe/python/caffe/init.py”, line 1, in
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File “/home/jcole/Git/caffe/python/caffe/pycaffe.py”, line 13, in
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver,
ImportError: /home/jcole/Git/caffe/python/caffe/_caffe.so: undefined symbol: _ZN5boost6python6detail11init_moduleER11P

解决方案:
libboost_python.so的版本不匹配,默认python版本为3.5,而boost_python为2.7。修改Makefile.config文件,将PYTHON_LIBRARIES := boost_python3 python3.5m注释去掉,并修改为PYTHON_LIBRARIES := boost_python3-py35 python3.5m,重新编译即可。注:python3.5m一定要带上,否则会出现“未定义引用”的错误。

出现问题:
在python里面import caffe时报错:
ImportError: No module named caffe
解决方案:
要把路径添加一下:
export PYTHONPATH=/your caffe home/python:$PYTHONPATH

出现问题:
make all时出现
CXX/LD -o .build_release/tools/upgrade_net_proto_binary.bin
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)’ .build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator >&, std::vector<int, std::allocator > const&)’
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)’
collect2: error: ld returned 1 exit status
Makefile:635: recipe for target ‘.build_release/tools/upgrade_net_proto_binary.bin’ failed
make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1
解决方案:
在Makefile.config文件中添加如下命令行
LIBRARIES += glog gflags protobuf leveldb snappy
lmdb boost_system hdf5_hl hdf5 m
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

出现问题:
make pycaffe时出现
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
python/caffe/_caffe.cpp:10:10: fatal error: numpy/arrayobject.h: No such file or directory
#include <numpy/arrayobject.h>
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:517: recipe for target ‘python/caffe/_caffe.so’ failed
make: *** [python/caffe/_caffe.so] Error 1
解决方案:
下载numpy,命令如下
sudo apt-get install python-numpy

出现问题:
fatal error:hdf5.h:没有那个文件或目录
解决方案:
在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
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

可能解决方案:
修改 Makefile
$ gedit Makefile
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
加入 opencv_imgcodecs

以上为本人在安装Caffe时的真实踩坑经历,送给同样喜欢深度学习的童鞋,避免踩坑,如需转载,请注明出处。

Caffe的安装与安装常见错误相关推荐

  1. 安装oracle 10g闪退,Windows 7安装Oracle 10g常见错误及解决方法

    Windows 7安装Oracle 10g常见错误及解决方法 在安装之前,我们要先下载相应的版本. 点击:Oracle 10g支持Win7版 错误A: 正在检查操作系统要求... 要求的结果: 5.0 ...

  2. 源码编译安装httpd及其常见错误

    一.编译安装的整体步骤 1.在官网下载源码,并解压 2.切换到其目录中 3.执行./configure 4.编译 二.编译中及安装后配置常见的参数及其说明 编译中配置 1)指定安装路径 --prefi ...

  3. Windows python3安装word2vec模块常见错误处理

    参考链接https://www.cnblogs.com/hufulinblog/articles/8311450.html,本文主要讲解本人在安装word2vec遇到的问题,更多问题可以看这篇博客. ...

  4. redhat7 安装php,Linux/redhat7.3 安装php以及常见错误

    一.安装libmcrypt [root@localhost php]# rpm -ivh libmcrypt-2.5.8-4.el7.art.x86_64.rpm rpm安装在安装php时:--wit ...

  5. npm安装脚手架工具常见错误解决方法

    1.npm install -g xxx全局安装出错 第一种错误:文件夹权限问题 报错: Unhandled rejection Error: EPERM: operation not permitt ...

  6. linux升级apache版本,Apache2.4版本的安装或升级常见错误

    在安装或者升级成Apache2.4版本时可能会一些错误,我们在实际生产环境中Apache是需要定制编译参数的,以实现生产环境的服务定制,但是用旧的编译参数时一般会报这样的错误,如下: -略- chec ...

  7. smart gesture安装失败_WinCC flexible SMART V3 SP2安装步骤以及常见错误解决方法

    1 安装配置 1. win7和win10系统都可以装 2. 运行内存至少要2G. 3. 硬盘储存空间至少要3G. 2 安装注意事项 1.安装本软件之前必须要关闭所有杀毒软件(例如360安全卫士/360 ...

  8. python安装第三方库-常见错误解决

    python安装第三方库(例子requests.numpy) 在本地安装python,并配置好相应的环境变量(自行百度很简单) 直接cmd 命令pip list可查看当前python下已经默认安装了哪 ...

  9. oracle安装及使用常见错误

    一.当出现协议适配器错误,protocol adapter error时 解决方法 这个错误一般是因为没有开启相关的oracle服务导致的,只要将数据库的相关服务开启,就会解决. 二.当出现liste ...

  10. manjaro安装微软雅黑字体_开始使用 Manjaro(添加源+字体渲染去模糊+软件安装+优化配置+常见错误)(30)...

    1. 添加 archlinux 镜像源 1. 步骤一 向 /etc/pacman.d/mirrorlist 中添加国内镜像地址 1.1 方法1:自动添加 1. 输入如下命令查看国内镜像源,并按质量排序 ...

最新文章

  1. Linux System Programming --Chapter Five
  2. 【数据竞赛】Kaggle秘技,用Sigmoid函数做回归问题!
  3. php require 找不到,php使用require()时的注意点
  4. 压箱底总结:流系统端到端一致性对比
  5. Google Guava BloomFilter
  6. ubuntu 12.04 /sbin/ldconfig.real: /usr/local/lib/*.so.8 不是符号连接 解决办法
  7. React开发(210):react中try...catch..
  8. 《算法竞赛进阶指南》0.4二分
  9. Python高级——多继承问题(super与mro)
  10. php no route to host,java.net.NoRouteToHostException: No route to host解决方法
  11. [译] Bulma: 2018年你应该关注的CSS框架
  12. Where does the error come from?----Bias and Variance
  13. 在.h文件和.m文件里使用import指令有何区别?
  14. Python UDP broadcast PermissionError: [Errno 13] Permission denied
  15. HTML5开发手机项目—个人总结
  16. eureka 缺点
  17. IDEA和Eclipse的debug怎么实现?出于好奇心,我越挖越深!
  18. mysql统计枚举值
  19. python2.7安装失败_Pyside安装失败(Python 2.7.4)
  20. 12306订票候补是个坑_收藏!十一火车票今起开抢秒光,12306官方教你“捡漏”技巧...

热门文章

  1. 正态分布函数概率运算dnorm/pnrom/qnrom/rnorm
  2. 云上360行丨深耕快消品行业数字化转型,纷享销客与华为云合力同行
  3. ObjectARX运行时类信息实现原理
  4. Apple MainStage 3 for Mac - 音乐人的现场演出装备
  5. Python函数调用文件处理
  6. 手把手告诉你如何安装多个版本的node,妈妈再也不用担心版本高低引发的一系列后遗症(非常详细,非常实用)
  7. ACM准备之路(蓝桥杯5)杨辉三角公式解法
  8. DDV_MaxChars() 函数
  9. JAVA高效学习方法的陈词滥调,给机会一个机会
  10. 2022第十届上海生物发酵展看尽智能装备,12月重逢发酵盛宴