服务器非root用户配置Caffe MobileNet SSD环境

MobileNet SSD速度快计算量适中,适合在移动端进行目标检测,但其运行环境很难配置,参考https://blog.csdn.net/weixin_35754503/article/details/89314033,小辣鸡作者在踩完以上所有坑的情况下,又多踩了许多坑,意识到服务器非root配置环境的路上没有捷径,并不是所有error都可以搜到答案,积极培养自己对error的适应能力,才能开开心心的去踩下一个。


前期准备

首先:你要有一台服务器,小辣鸡这里用的是Redhat
其次:确认一下你真的没有root权限,不要遭不该遭的罪 (来sudo一下)
心理:虽然这篇文章解决不了你遇到的全部问题,但是我相信你一定可以的
建议和上面的参考一起看huh。

简单说一下

配置caffe ssd的流程大约是这样的:

  1. clone caffe ssd代码
  2. 安装anaconda
  3. 安装依赖库
  4. 配置环境变量
  5. 按照官方指引安装caffe ssd
  6. cmake连接文件,检查是否报错或库、包的版本、路径不对,若不对返回3
  7. make all编译文件,若报错,返回3
  8. 继续按照官方指引完成安装

流程开始

建议在你的根目录下建立两个文件夹:local,用来存放自己安装的依赖包;temp,用来下载安装包。

首先,下载caffe ssd,
git clone https://github.com/weiliu89/caffe.git

许多依赖包可以通过anaconda下载,省时省力,但也有可能会带来不必要的麻烦,(:anaconda在环境变量的优先级通常比自己指定的要靠前,anaconda自带的库有可能会被cmakelist优先找到 典型错误:cmake后的信息找到的是conda下的hdf5,然而anaconda通常会下载最新版本的包,会导致版本不匹配,然而卸载这个包又会导致其依赖库一起被卸载掉,这样的解决办法:卸载掉冲突的包再装回有用的、被当做依赖包一起卸载掉的包,典型的错误提示:unreference to…)。这里推荐下载anaconda2。

依赖库

:不仅要装库,库的版本也很重要。
由于服务器自带的包的个数和版本不同,你需要在cmake后的信息中寻找缺失的包,:仅仅找缺失的包还不够,你要检查每个包所对应的路径是否是你希望安装中所使用的路径,如果不是,原因大约:1. 你指定的路径有误,修改路径 2. 找到的包是anaconda lib下的,在anaconda里卸载这个包,并在同意卸载输入yes之前看好一同被卸载的依赖包中是否有你需要的包,如果有,在卸载后用conda install再装好 3. 微笑提示:vim .bashrc中修改环境变量之后要source .bashrc。

配套库以及我使用的版本
boost 1.61
cmake3.4.0
cvDNNv6.0 (到nvidia搜你匹配的版本)
hdf5 :容易和anaconda起冲突
openblas
opencv 3.4.4
python 2.7.16
:protobuf,在下载之前先看好

protoc --version

下载对应版本的protobuf

安装方法参考https://blog.csdn.net/jiajinrang93/article/details/80337513,但要:注意版本。建议在local中,每个包都独立建一个文件夹,然后再把temp中的安装程序的安装路径指到那个专用的文件夹中,毕竟你下载的依赖库不会很多,:但如果你不小心装错了版本,删是真的难删。

配置环境变量

到你的根目录下

vim .bashrc

指定一下环境变量,:记得source .bashrc。

官方安装命令

短短几句,每成功一小步,都是你进步的一大步,来吧,进入下载的ssd_caffe/caffe/

mkdir build
cd build
cmake ..
make all
make install 
make pycaffe
make runtest

:重点就在第三句cmake,由于你要指定自己下载的包的位置,

cmake .. -DBLAS=open 
-DCMAKE_BUILD_TYPE=Release
-DCUDNN_INCLUDE=/.../cudnn/include
-DCUDNN_LIBRARY=/.../cudnn/lib64/libcudnn.so
-DBOOST_ROOT=/.../local/boost/
-DOpenCV_DIR=/.../opencv 
-DCMAKE_PREFIX_PATH=/.../opencv/share/OpenCV

:句子间记得加空格,有些系统目录下没有提供的包,自己下载好后,指定cmake为每个变量配置的变量名,需要去cmakelist.txt、Dependencies.cmake和Findxxx.cmake中自己找。

:这里不仅出现错误,有时候它虽然连接成功,你make all还是会报错,但这不是make all的锅,所以在cmake的提示信息中,一定要看好每个包是不是你指定的包,是否有缺包,python是否找到等等,一切warning都有可能成为你make all失败的潜在风险,然而像提示clock skew和libraries may be incomplete可以不用担心。

:make all

前面随意安装依赖库的所有任性都在这个环节还给你,从0%到100%每走一步都是巨大的进步。这里出现的错误原因大约分两种:你的编译有问题和你的依赖库有问题。编译基本上就是gcc版本问题,太新太老都不行,你没有看错,还有就是你的cmake有问题,anaconda的cmake太新,建议自己下,一般编译的问题会很早就报错,并且会报一堆错误,比如100 errors;另一种,库的错误的话,原因就是unreference to…,报的错误也不少,但是没有第一种多,这时就要看具体分析了,察觉蛛丝马迹,比如你发现每个找不到的东西里都带jasxxx,到网上搜一搜就会发现有一个叫jasper的库,手动下载装一下,然后配环境变量吧。


一旦make all过了后面就应该很顺利了,至少是离成功不远了。加油装吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值