ubuntu16.04+caffe+cpu+Anaconda3(python3)
阅读原文时间:2021年04月20日阅读:1

我最新的配置方案:https://blog.csdn.net/m0_38116269/article/details/88919184
参考caffe官方教程
参考文献11

参考文献22

0.预备

建议先安装好anaconda,这样Python的许多依赖都有了。

1.安装caffe依赖包

目前来看挺正常的,依赖项安装应该不麻烦,下载libhdf5这个依赖项花的时间有点长。

sudo apt-get install libprotobuf-dev 
sudo apt-get install libleveldb-dev 
sudo apt-get install libsnappy-dev 
sudo apt-get install libopencv-dev 
sudo apt-get install libhdf5-serial-dev 
sudo apt-get install protobuf-compiler 
sudo apt-get install libgflags-dev 
sudo apt-get install libgoogle-glog-dev 
sudo apt-get install liblmdb-dev 
sudo apt-get install libatlas-base-dev 
sudo apt-get install --no-install-recommends libboost-all-dev 

成功截图:

2.安装caffe

2.1下载caffe

用git是真的慢,下了我半个多小时。

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

2.2准备安装

  1. 进入caffe目录

    cd caffe

  2. 拷贝一个Makefile.config副本:

    cp Makefile.config.example Makefile.config

这样就出现了一个叫Makefile.config的文件,接下来就可以在里面修改了,就是是出现错误,咱们还有一个原来的文件呢。
3. 打开这个Makefile.config文件
(1)去掉CPU_ONLY := 1前面的#号,这个在第八行

(2)还得修改一点,解决HDF5找不到的问题。这个在97行。

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/hdf5/serial


(3)对于python3,这个暂时先不弄?目前我是Python2和3都有啊。。。
(4)查看opencv依赖项的版本,一般默认的话安装的是2的。

pkg-config --modversion opencv

(5)记得自己是配置了anaconda的,估计每个人配置的都不一样,这里我觉得应该把anaconda也得给加上。试试吧。

下面还改了一个地方,让它对应anaconda3里面的目录,不知道行不行。
Makefile.config具体的一些操作说明详解可以参考博客3
参考

  1. 编译吧

    sudo make all
    sudo make test
    sudo make runtest

果然道路不是一帆风顺的,遭遇到错误:

wangwh@wangwh-Lenovo-YOGA-710-14IKB:~/caffe$ sudo make runtest
.build_release/tools/caffe
.build_release/tools/caffe: error while loading shared libraries: libhdf5_hl.so.100: cannot open shared object file: No such file or directory
Makefile:542: recipe for target 'runtest' failed

尝试解决:
参考博客
这个博客写的还真是不错,网上查了好几个都不行,好歹有真管用的,成功了终于:

5. 编译pycaffe

二、不行,出现错误,又重新配置了一遍
参考博客
出现问题:

pandas 0.23.0 has requirement python-dateutil>=2.5.0, but you'll have python-dateutil 1.5 which is incompatible.
matplotlib 2.2.2 has requirement python-dateutil>=2.1, but you'll have python-dateutil 1.5 which is incompatible.
jupyter-client 5.2.3 has requirement python-dateutil>=2.1, but you'll have python-dateutil 1.5 which is incompatible.
bokeh 0.12.16 has requirement python-dateutil>=2.1, but you'll have python-dateutil 1.5 which is incompatible.
anaconda-client 1.6.14 has requirement python-dateutil>=2.6.1, but you'll have python-dateutil 1.5 which is incompatible.

解决:
参考博客
成功了:

现在考虑我好像不需要运行caffe/python里面的那个依赖项.txt,因为我已经配置好anaconda了,各种依赖都已经有了。

  • 然后准备编译caffe
    输入: sudo make all之后就出错了,如下:

    /usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: 没有那个文件或目录
    compilation terminated.
    Makefile:591: recipe for target '.build_release/src/caffe/layer_factory.o' failed
    make: *** [.build_release/src/caffe/layer_factory.o] Error 1

解决:
这玩意没解决了,第一次根本没遇到这个问题,查了许多博客还是解决不了,算了,重新把配置文件再搞一遍吧。我估计是这东西哪儿搞错了。。。
然而又出现了新的问题。。。。我真的是服了啊。。问题如下:

/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用

解决方法

  • 然后输入sudo make test
    成功
  • 然后输入 sudo make runtest
    再次成功:
  • 编译pycaffe,输入 sudo make pycaffe -j4
    成功:

然后测试,返回上级目录,进入python,输入import caffe。测试成功。

哈哈哈哈。

总结

现在是终于配置好了,感觉配置环境吧,每个人的电脑都不一样,每个人之前安装过的东西也不一样,所以不能盲目按照别人的博客来,我上面就是因为盲目跟随,导致多走了一些弯路。所以一定要清楚,自己每一步有什么作用,每一步是干什么。

又一次安装

参考:
Ubuntu16.04 14.04安装配置Caffe(GPU版)
深度学习文章1:Caffe安装教程:Ubuntu16.04(CPU)

NVIDIA官网
先查找驱动


ubuntu18.04安装驱动的命令变为:
sudo apt install nvidia-driver-410


  1. ubuntu16.04 安装caffe cpu版本 python3 ↩︎

  2. Ubuntu16.04安装caffe CPU版 ↩︎

  3. 编译caffe-Makefile.config解析 ↩︎

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章