Xiaoshier Blog

Mac 安装 caffe 遇见的坑

Mac 下安装 caffe 遇见的坑, 安装了的环境因为新的需要修改, 然后环境被改坏, 再找再改, 整整弄了好几天, 已哭晕在电脑前, 必须记录一下

设备:
Mac Pro: macOS Sierra Version 10.12.6
xcode: Version 9.0

使用 cpu 和 Anaconda Python
make all
make test
make runtest
一次就可以了

安装

按照官网网上教程安装

  1. 下载安装依赖

    1
    2
    3
    brew install -vd snappy leveldb gflags glog szip lmdb
    brew tap homebrew/science
    brew install hdf5 opencv
  2. 如果是 Anaconda Python

    1
    brew edit opencv
    1
    2
    -DPYTHON_LIBRARY=#{py_prefix}/lib/libpython2.7.dylib
    -DPYTHON_INCLUDE_DIR=#{py_prefix}/include/python2.7

    改为

    1
    2
    -DPYTHON_LIBRARY=/Users/xiaoshier/anaconda/lib/libpython3.6.dylib
    -DPYTHON_INCLUDE_DIR=/Users/xiaoshier/anaconda/include/python3.6
  3. 安装依赖

    1
    2
    3
    brew install --build-from-source --with-python -vd protobuf
    brew install --build-from-source -vd boost boost-python
    brew install protobuf boost
  4. 下载 caffe 包
    创建个文件夹, 将 caffe 下载至该文件夹

    1
    2
    3
    git clone https://github.com/BVLC/caffe.git
    cd caffe
    mv Makefile.config.example Makefile.config
  5. 修改 Makefile.config
    使用 CPU, blas 使用 openblas, python 使用 Anaconda 的 python

    1
    2
    CPU_ONLY :=1 //前的#去掉
    BLAS := atlas 改为 BLAS := open //使用 openblas
  6. 执行命令

    1
    2
    3
    4
    make all
    make test
    make runtest
    make pycaffe

error

  1. make test时报错, 原因: 使用的是 openblas, 但是 Makefile.config 中的相应内容未匹配
    img1
    解决方法 Makefile.config 中如下注释去掉
    img2

  2. make pycaffe 报错, 原因: 使用的是 Anconada 里的 python, 相应的路径要调整正确
    目前仍未调通, 整了又一天, 哭死
    img3
    解决方法 Makefile.config 中如下注释去掉
    img4

    1
    export PYTHONPATH=/Users/xiaoshier/anaconda/lib/python3.6

然后执行安装的第3步, 不过是卸载然后执行第2步再执行第3步

  1. make all 时报错, 原因: 因为使用的是 opencv3

    1
    2
    CXX/LD -o .build_release/tools/convert_imageset.bin
    .build_release/lib/libcaffe.so: undefined reference tocv::imread(cv::String const&, int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'

    在 Makefile 文件中添加二三行的内容(原来是有的但是不全)

    1
    2
    3
    LIBRARIES += glog gflags protobuf leveldb snappy \  
    lmdb boost_system hdf5_hl hdf5 m \
    opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
  2. make runtest时报错, 原因: caffe没有成功连接到Anaconda安装的libhdf5_hl.10.dylib
    img5

    每次重新 make all make test make runtest 都需要按照如下文章中的办法重新设置
    解决办法看此链接