AI环境搭建系列3 X86平台编译安装caffe 遇到的问题

编译环境 X86 GTX1060 Ubuntu 16.04

git clone https://github.com/BVLC/caffe.git
$cp Makefile.config.example Makefile.config

在Makefile.config中修改如下内容:

94 # Whatever else you find you need goes here.
95 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
96 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

make all
make test
make runtest
make pycaffe 编译python接口

一直到这里和ARM平台编译的方法没有太大差异,通过对比之前讲的ARM平台和X86平台的编译方法,发现区别并不大,不过是多了一些编译配置选项罢了。
而这次我们遇到了如下问题:

Q1 HDF5 library version mismatched error

错误提示:

Warning! ***HDF5 library version mismatched error***
The HDF5 header files used to compile this application do not match
the version used by the HDF5 library to which this application is linked.
Data corruption or segmentation faults may occur if the application continues.
This can happen when an application was compiled by one version of HDF5 but
linked with a different version of static or shared HDF5 library.
You should recompile the application or check your shared library related
settings such as 'LD_LIBRARY_PATH'.
You can, at your own risk, disable this warning by setting the environment
variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'.
Setting it to 2 or higher will suppress the warning messages totally.
Headers are 1.10.1, library is 1.8.16
        SUMMARY OF THE HDF5 CONFIGURATION
        =================================

General Information:
-------------------
           HDF5 Version: 1.8.16

从上面的错误提示分析可知,编译和链接的时候用到的hdf5不是一个版本,其中一个版本是1.10.1,另外一个版本是1.8.16。
定位hdf5这个库都哪里有:

locate hdf5*

可知:

/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.settings

查看该文件可知,HDF5 Version: 1.8.16
而在caffe中,我们的hdf5的编译路径是:

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5

所以说,我们在编译链接的时候,使用的是1.8.16的版本
再去看看那个1.10.1的版本,

(py3.6) user@starlitsky2010/opt//ssd-caffe$ ls -l /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10
lrwxrwxrwx 1 root root 27 46  2016 /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10 -> libhdf5_serial_hl.so.10.0.2
(py3.6) user@starlitsky2010:/opt//ssd-caffe$ ls -l /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10.0.2
-rw-r--r-- 1 root root 126232 46  2016 /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10.0.2

上面这个错误告诉我们,在配置hdf5的环境变量时,要保证编译和链接以及执行时的库的一致性。

Q2 AttributeError: ‘module’ object has no attribute ‘open’

/opt/caffe/    假设该路径为caffe源码路径
/opt/caffe/python/caffe/  这里我们将这个路径添加到PYTHON_PATH中,这是一个错误的做法
/opt/caffe/python/        这个是正确的设置路径

也就是如果在配置PYTHONPATH时,多加了一个caffe,就会在在source activate py3.6 更新anaconda环境时报错:

Traceback (most recent call last):
  File "/home/starlitsky2010/anaconda2/bin/conda", line 7, in <module>
    from conda.cli import main
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/conda/__init__.py", line 10, in <module>
    from .common.compat import iteritems, text_type
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/conda/common/compat.py", line 113, in <module>
    from io import open as io_open  # NOQA
  File "/opt/caffe/python/caffe/io.py", line 1, in <module>
    import numpy as np
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/numpy/__init__.py", line 142, in <module>
    from . import add_newdocs
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/numpy/lib/__init__.py", line 23, in <module>
    from .npyio import *
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/numpy/lib/npyio.py", line 14, in <module>
    from ._datasource import DataSource
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/numpy/lib/_datasource.py", line 220, in <module>
    _file_openers = _FileOpeners()
  File "/home/starlitsky2010/anaconda2/lib/python2.7/site-packages/numpy/lib/_datasource.py", line 162, in __init__
    self._file_openers = {None: io.open}
AttributeError: 'module' object has no attribute 'open'
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值