macOS High Sierra安装Caffe框架

英特尔杯人工智能挑战赛需要用到Caffe深度学习框架。Caffe框架在macOS上需要手动编译,然而官方的安装教程年久失修,并且编译过程中会遇到由不同版本或环境而引发的问题,我历时三天,踩了无数的坑之后,终于成功安装了Caffe框架。在此记录下安装的过程和遇到的错误,希望对你有所帮助。

系统环境及安装配置

  • Macbook Air 13′ macOS High Sierra
  • Homebrew
  • Xcode
  • Miniconda Python2(Caffe建议使用Anaconda Python,另外我在尝试使用Python3编译Caffe时遇到了未知的错误,因此建议使用Python2.7)
  • openBLAS(Intel的MKL库会提供更高性能且更稳定的计算,在校学生可以通过这里申请:Intel® Math Kernel Library (Intel® MKL) | Intel® Software
  • CPU ONLY模式(MacBook Air没有NVIDIA GPU,因此使用CPU ONLY模式,不需要安装CUDA及cuDNN)

安装依赖

首先安装Miniconda安装包,并确保Miniconda的路径已经被加入 PATH,编辑 ~/.zshrc(或 bash_profile),添加

使用Brew安装依赖

Miniconda只附带了很少的包,使用pip安装其余的依赖。如果你使用Anaconda,则可以跳过这一步。

编译caffe

编辑编译配置文件Makefile.config
以下是我的配置,需要修改的位置已在注释中标注

开始编译

设置环境变量

编译完成的文件位于 /path/to/caffe/python目录下,需要将这个路径加入 PYTHONPATH
编辑 ~/.zshrc(或 bash_profile),添加

Troubleshooting

TypeError: new() got an unexpected keyword argument ‘file’

可能的原因是brew安装的protobuf版本高于3.5.0(我这里是3.5.1),而pip或conda安装的protobuf版本低于3.5.0。然而错误信息中的 file字段是在3.5.0引入的,因此引发错误。

解决方案为使用pip或conda安装新版本的protobuf
首先使用 pip show protobuf查看当前安装的版本,如果低于3.5.0,则 pip install protobuf==3.5.1

[.build_release/lib/libcaffe.so.1.0.0] Error 1

解决方案为在makefile文件中找到 LIBRARIES在后面添加 opencv_imgcodecs

References

https://github.com/BVLC/caffe/issues/6143
http://blog.csdn.net/wxy_2017/article/details/78609843
http://xxuan.me/2016-11-12-install-caffe-under-macos.html
https://github.com/BVLC/caffe/issues/5357
https://github.com/BVLC/caffe/issues/6054

Show CommentsClose Comments

Leave a comment