Ubuntu 18.04.5 LTS安装配置caffe环境记录

序言

网上教程明明很多,为什么还要写这篇文章?网上的文章抄来抄去的,很多都是误导人的安装,而且有些环境不一样还会出现各种各样不同的问题,这篇主要是记录自己本机的安装过程和遇到的问题,方面以后需要的时候翻出来,印象更深刻一些,适合自己的才是最好的。

一、系统环境

  • ubuntu 18.04.5
  • cuda 11.1
  • rtx 3070
  • cudnn 8.1
  • python 3.8

以上环境默认已经配好。

二、开始安装

2.1 安装opencv

去opencv官网opencv下载对应的发布包,我这里下载的是
在这里插入图片描述
下载后解压到你要安装的目录,我这里是直接解压到/usr/local/opencv-3.4.10里,cd到该目录下运行:

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8
sudo make install

顺利的话可以使用如下命令查看opencv版本验证是否安装完成:
在这里插入图片描述

2.2 安装caffe依赖库
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 libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

依次运行以上安装,注意看可能会报如下错误,提示你so文件不是连接符:

在这里插入图片描述
这时候需要依次创建软连接,在命令行中运行(注意自己的路径):

sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.1.1 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8

sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.1.1 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8

sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_abv_ops.so.8.1.1 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8

sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.1.1 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8

sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.1.1 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8

sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_ops.so.8.1.1 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8

sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8.1.1 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8

2.3 下载caffe源码
git clone https://github.com/bvlc/caffe.git

cd到caffe目录下,配置编译参数,执行命令:

sudo cp Makefile.config.example Makefile.config

这一步作用是将示例的配置文件复制为使用的配置文件名字,使用vim打开Makefile.config文件,在这里文件中,。

sudo vim Makefile.config

在配置文件中,可将以下配置注释放开,依次是使用cudnn、使用opencv3版本、使用python来编写layer。

#USE_CUDNN := 1
#OPENCV_VERSION := 3
#WITH_PYTHON_LAYER := 1

因为编译的时候报了一个cudnn版本不匹配的问题报错(如下),有可能是我cudnn版本太新(cudnn8.1.1)了,实在是找不到解决办法,所以我只开放了上面的后面两个注释:
在这里插入图片描述
将默认的python2.7 注释掉,这里使用 anaconda3 python3.8
在这里插入图片描述

然后将

1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

修改为

1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

## 不然的话可能报以下错误
LD -o .build_release/lib/libcaffe.so.1.0.0
/usr/bin/ld: 找不到 -lhdf5_hl
/usr/bin/ld: 找不到 -lhdf5
collect2: error: ld returned 1 exit status
Makefile:582: recipe for target '.build_release/lib/libcaffe.so.1.0.0' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1

如果顺利的话就不用管,但是如果修改完还是报了那个错误,可能还需要添加这步:修改Makefile(注意不是Makefile.config),将里面的:

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m

改为LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

然后还是在Makefile.config文件里,打开修改这部分:
在这里插入图片描述
因为我的cuda版本是11.1的,所以前面三个(20 、21 、30)是不支持的,就删掉了,如果不删会报如下错误(20、30同理):

在这里插入图片描述
删了前三行之后编译可能会出现如下警告,可以不用管:
在这里插入图片描述
修改完后就可以编译了:

make -j8            # 编译caffe

如果编译过程遇到opencv的错,如下:
在这里插入图片描述
解决办法是打开Makefile文件,将

LIBRARIES += opencv_core opencv_highgui opencv_imgproc

修改为

LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

然后执行:make clean,将之前的编译文件清除掉,再执行:make -j8 。

最后编译通过的话执行以下命令:

sudo make runtest     # 测试caffe

测试成功说明安装好了。不过我在runtest的时候又遇到了很头疼的问题,脑阔快炸掉了!!:
在这里插入图片描述
解决步骤:
先去在/usr/local/lib目录下查看,找到了libopencv_core.so.3.4,然后执行:

sudo cat /etc/ld.so.conf
sudo echo "/usr/local/lib" >>sudo  /etc/ld.so.conf
sudo ldconfig

重新测试
sudo make runtest

顺利通过

再然后遇到,因为我使用的是anaconda的python,并且是python3,所以先看一下有没有libpython3.8.so.1.0:
在这里插入图片描述
检查libpython3.8.so.1.0这个库在哪里:

执行locate libpython3.8.so.1.0
得到如下结果
/home/cai/anaconda3/lib/libpython3.8.so.1.0
/home/cai/anaconda3/pkgs/python-3.8.5-h7579374_1/lib/libpython3.8.so.1.0

执行sudo vim /etc/ld.so.conf.d/anaconda3.conf
在里面添加:/home/cai/anaconda3/lib/
保存退出后执行:sudo ldconfig

重新sudo runtest

顺利的话如下:
在这里插入图片描述

三、配置pycaffe

在成功安装caffe之后,就可以通过caffe去训练数据集或者预测各种相关的模型了,只不过需要在命令后下通过caffe命令进行操作,实际上还需要用python来操作caffe,所以还需要配置pycaffe的环境,还是在caffe文件夹下,执行:

sudo make pycaffe -j8

大概率会报错:

python/caffe/_caffe.cpp:10:31:fatal error:numpy/arrayobject.h

解决:sudo apt-get install python-numpy

编译成功的话显示如下:
在这里插入图片描述
添加 pycaffe 环境变量,sudo vim ~/.bashrc,在末尾添加:

export PYTHONPATH=~/caffe/caffe/python   #(这是我caffe-python的路径,要结合自己的路径修改)

然后进入python环境,执行import caffe,报错
在这里插入图片描述
解决:pip install scikit-image

再导,再错
在这里插入图片描述
解决:pip install protobuf

再导,成功!!
在这里插入图片描述

其他的问题暂时没有遇到,以上是我的caffe编译过程,文章仅供参考。

最后提醒,虽然过程坑很多,但是遇到问题要耐心解决,百度上有很多答案都是抄袭的,没有经过实践的,在查答案的时候需要学会甄别。很多问题都是有可解决方案的,最重要的还是耐心。祝各位编译顺利。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Ubuntu 18.04.5 LTS是一款长期支持版本的操作系统,它基于Linux内核和Debian发行版。它提供了稳定、安全、易用的桌面环境和服务器环境,适用于个人和企业用户。该版本的特点包括:更新的软件包、更好的硬件支持、更强的安全性和更好的性能。 ### 回答2: Ubuntu 18.04.5 LTS是一个长期支持版本的操作系统, 是Ubuntu 18.04的第五个点发布版本。LTS代表长期支持,意味着该版本将会在未来几年内接受更新和修复,提供持续的稳定性和安全性。 相对于非LTS版本,LTS版本更为稳定,更适合企业和大型组织使用,因为它们不需要频繁地升级操作系统。LTS版本的更新通常更加注重修复错误和安全性而不是引入新功能。 在Ubuntu 18.04.5 LTS中,有许多令人兴奋的新功能和改进。其中包括更新的Linux内核,提供更好的硬件兼容性和性能。此外,它还包含对GNOME桌面环境的更新,包括新的图标集和增强的用户界面。 Ubuntu 18.04.5 LTS还具有更好的软件兼容性和可用性。用户可以通过Ubuntu Software Center或命令行轻松地安装和管理各种软件包。此外,Ubuntu 18.04.5 LTS还提供了一个稳定的软件库,用户可以从中安装常用的应用程序和工具。 总结来说,Ubuntu 18.04.5 LTS是一个稳定、可靠、安全的操作系统版本。它提供了许多更新和改进,以改善用户体验和提高硬件兼容性。无论是个人用户还是企业用户,都可以依靠Ubuntu 18.04.5 LTS来实现他们的计算需求。 ### 回答3: Ubuntu 18.04.5 LTSUbuntu操作系统的一个版本。LTS代表“长期支持”,意味着该版本将得到长时间的维护和更新支持。 Ubuntu 18.04.5 LTS于2020年8月发布,是Ubuntu 18.04 LTS版本系列的第五个点版本。它包含了前几个点版本的所有更新和修复,以及针对安全漏洞的修复和性能优化。 该版本的发布主要是为了为用户提供一个稳定而可靠的操作系统,以满足他们的日常计算需求。无论是家庭用户还是企业用户,都可以从Ubuntu 18.04.5 LTS获得类似的体验。 Ubuntu 18.04.5 LTS内置了许多流行的应用程序和工具,以及功能强大的桌面环境。它还支持许多硬件设备和外围设备,包括打印机、摄像头和音频设备等。用户可以轻松地安装和使用各种软件,例如办公套件、图形编辑工具、媒体播放器等。 在安全方面,Ubuntu 18.04.5 LTS提供了定期的安全更新和补丁,以确保系统的安全性。用户可以放心地使用该版本,无需担心受到恶意软件或网络攻击的威胁。 总的来说,Ubuntu 18.04.5 LTS是一个稳定、安全和功能齐全的操作系统,适用于各种用户和用途。它为用户提供了一个愉快和高效的计算环境,并将持续得到支持和维护,以确保系统的稳定性和安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值