资讯专栏INFORMATION COLUMN

caffe CPU Ubuntu20.04 安装环境搭建 详细每一步 遇到的所有问题及解决

fxp / 1468人阅读

摘要:平台系统环境下配置本次项目需要使用到的框架,开发人脸识别的功能,最终要集成到平台的系统。解决完一个问题,就返回目录继续编译,遇到一个问题解决一个问题。至此,在下配置完成。

x86 平台 Linux Ubuntu 20.04 系统 环境下 配置caffe

本次项目需要使用到caffe的框架,开发人脸识别的功能,最终要集成到arm平台的linux系统。我先拿x86平台的主机试试水,对caffe和linux一窍不通的我来说,属实遇到了不少大大小小的问题,好在前人的文章都有很好的总结,那么话不多说,开始caffe的环境搭建探索吧!

caffe需要的依赖项

caffe需要很多的依赖项才能运行,在编译caffe之前,需要及其所有依赖项,才能召唤caffe,那么我们就需要弄清需要哪些依赖项?我有哪些依赖项?怎么用起来这些依赖项?

经过网上的总结,列出需要的依赖项如下:

python3.5 / python2.7boostgflagsglogleveldblmdbprotobufhdf5snappyopencv

怎么查看自己有哪些依赖项?输入指令查看:

dpkg -l  #准确搜索dpkg -l | grep  #模糊搜索

查看自己的主机上是否已经存在有的依赖项
我的主机里有python3.8,其实有python3.8也可以按照,不是必须要2.7或者3.5,只要目录对了,有正确的依赖项就行。这个后面说。

如果没有依赖项,使用apt-get来安装:
安装opencv,boost,protobuf,leveldb,snappy,hdf5

sudo apt-get install libopencv-dev libboost-all-dev libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-complier

安装blas库:

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

到这步,caffe的依赖项就基本安装好了

下载caffe源码,修改Makefile

进入到要下载的目录后:

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

进入目录,拷贝Makefile配置文件

cp Makefile.config.example Makefile.config

Makefile.config.example是模板,每次使用时,复制一份Makefile.config,编译的时候会读取.config的内容
根据依赖项所安装在的位置,修改Makefile里的内容:

  1. CPU_ONLY=1 前面的注释去掉
  2. GPU的前面都加上注释#
  3. 注释掉python2.7的PYTHON_INCLUDE
  4. 修改# Uncomment to use Python 3 (default is Python 2) 这一句下面的:
 PYTHON_LIBRARIES := boost_python3 python3.8 PYTHON_INCLUDE := /usr/include/python3.8 /                 /usr/lib/python3/dist-packages/numpy/core/include这里主要看自己的python目录,在usr/include和usr/lib的目录下找
  1. 修改OPENCV_VERSION=4
  2. 去掉WITH_PYTHON_LAYER前的注释
  3. 修改# Whatever else you find you need goes here. 这一句下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial /usr/include/opencv4LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

至此依赖项的目录都基本添加完成,如果后续有报错没找到文件,就去对应的目录下面确认,是什么原因:1.文件名不对;2.文件目录没添加;3.不存在该文件

编译caffe以及遇到的问题

输入指令,开始编译:

sudo make all

然后就慢慢等待报错吧~
ERROR1:src/caffe/util/io.cpp,"CV_LOAD_IMAGE_GRAYSCALE" "CV_LOAD_IMAGE_COLOR" not declared in this scope.这个问题是SSD是用opencv2编写的,而opencv2于opencv4有较大的语法差别,所以这里添加两行代码,在报错的.cpp文件中:

#define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR#define CV_LOAD_IMAGE_GRAYSCALE cv::IMREADGRAYSCALE这两行代码分别对应解决上面的两个报错,使用宏定义可以省去查找代码的位置,非常方便

ERROR2:src/caffe/util/db.cpp #include "leveldb/db.h"头文件问题,首先去/usr/include目录下查找该头文件目录,没有找到,怀疑是没有装leveldb,重装:sudo apt-get install libleveldb-dev

ERROR3:usr/bin/ld:cannot find -lhdf_serial_hl, cannot find -lboost_python3该报错是找不到对应的lib文件,对应着找不到hdf_serial_hl.soboost_python3.so文件。有三种可能:1.系统没有安装对应的lib;2.对应的lib版本不对;3.lib的symbolic link 不正确,没有连接到正确的函式库文件。
先解决一下hdf_serial_hl的问题:判断在/usr/lib下相应的.so文件的软链接是否正确:

cd /usr/lib/x86_64-linux-gnufind . -name "*hdf*_serial_hl.*" | xargs ls -l

得出结果:

当时没有libhdf5_serial_hl.so文件。别的.so文件最终都指向libhdf5_serial_hl.so.100.1.1文件,创建一个软连接:

sudo ln -s libhdf5_serial_hl.so.100.1.1.so libhdf_serial_hl.so

继续找libboost_python3,找到了如下:

因为我在Makefile.config里面修改了python的目录为python3.8的目录,并且我主机的默认python版本是python3.8,所以在安装boost的时候就自动生成了libboost_python38这个文件,这里或许可以修改配置里的默认python版本,然后安装boost的时候就生成了对应python版本的libboost_python。实际上我所依赖的就是libboost_python38.so.1.71.0。

创建软连接

sudo ln -s libboost_python38.so.1.71.0 libboost_python3.so

因为我之前是下载了python3.5,然后苦苦寻找libboost_python35.so这个文件,觉得要自己编译boost,后来放弃这个办法,觉得太麻烦,所以才发现原来修改caffe的Makefile.config的python目录就可以解决。

解决完一个问题,就返回caffe目录继续编译,遇到一个问题解决一个问题。无非是这几种状况:

  1. 代码错误,由于版本的不同,只需要编辑一下代码
  2. 文件目录/文件名问题,可能是目录名不正确,文件名不正确,创建软连接即可,把文件目录添加进Makefile.config
  3. 文件不存在,apt-get 下载

编译通过后验证caffe

进入到caffe的目录下,执行命令行:

sudo sh data/mnist/get_mnist.sh #下载mnist数据集sudo sh examples/mnist/create_mnist.sh #将数据转换为leveldb格式#修改prototxt 修改为CPU版本#找到 #solver mode:CPU or GPU  改为:solver:CPUvim examples/mnist/lenet_solver.prototxtsudo sh examples/mnist/train_lenet.sh #训练数据

运行正确开始显示迭代次数和准确率。

import caffe,caffe python的依赖库安装

在python中使用caffe会以来很多库,在import caffe前,需要安装一些python工具的依赖项,需要用到pip3。安装pip3:

sudo apt-get install python3-pip

安装依赖:
这里可以先更新一下pip源:参考这篇文章:pip换国内源

cd caffe/python #进入到python目录sudo pip3 install -r requirements.txt #递归安装依赖库

如果出现错误:“缺少caffe._caffe 模块”,要在caffe的目录下sudo make pycaffe再到caffe/python目录下运行python3,import caffe。就没有错误了。

至此,caffe在x86 Ubuntu20.04下配置caffe完成。我猜想如果在arm平台上,不是Ubuntu20.04也不是python3.8,可能要自己下载源码编译opencv,boost等库,到时候再整理一篇,海思3531芯片arm平台的caffe环境配置。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119648.html

相关文章

  • Anaconda+CUDA+cuDNN+Tensorflow2.0环境搭建

    摘要:图和之间的关系图例与各版本之间的环境依赖关系的原装驱动并不支持,因此需要禁用掉并且重装卡官方驱动。会有很多同学在不知道的情况下安装了,最后导致和无法使用或者无法安装等问题。 ...

    biaoxiaoduan 评论0 收藏0
  • 了解RoboMaster视觉组(三)视觉组使用软件

    摘要:视觉组接触的软件进行视觉开发会用到各种各样的软件开发环境辅助工具等,所以很有必要了解一些相关的快捷键命令使用技巧。没有这样保姆级的,并不存在一款能够自动为你生成的软件。一款录制屏幕的软件。 --NeoZng【neozng1@hnu.edu.cn】 3.视觉组接触的软件 进行视觉开发会用到...

    AlphaWallet 评论0 收藏0
  • Ucloud1H1G服务器搭建Chevereto图床

    摘要:由于个人服务器配置较低,使用的是的的服务器,另外不喜欢环境,网上找了很多教程都出现一些奇奇怪怪的问题,最后结合官方文档最终搭建好图床。这将移除一些匿名用户和测试数据库,并且禁用远程登录。由于个人服务器配置较低,使用的是Ucloud的1H1G的服务器,另外不喜欢LNMP环境,网上找了很多教程都出现一些奇奇怪怪的问题,最后结合官方文档最终搭建好 Chevereto 图床。预览地址:http://...

    Tecode 评论0 收藏0
  • 打造Win10下完美Linux体验(WSL2+WindowsTerminal+oh-my-zsh),

    摘要:以管理员身份打开分别输入输入完成后重启电脑,以完成安装并更新到。将设置为默认版本在微软商店内下载分发版,这里我下载的是。且被视为管理员,能够运行管理命令。 目录 ...

    孙淑建 评论0 收藏0
  • Ubuntu 20.04服务器安装搭建WooCommerce教程

    摘要:是目前流行的服务器操作系统之一,绝大多数美国服务器支持配置此系统。提供有应用程序市场,支持一键安装部署。根据所选的服务器规格进行了预优化,以获得所有托管网站的最佳性能。WooCommerce是WordPress的开源电子商务插件,可以帮助用户轻松创建在线商店和购物网站,操作简单并能允许用户根据电子商务需求灵活扩展功能。那么,如何在ubuntu 20.04服务器安装和配置WooCommerce...

    nidaye 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<