MacOS Mojave10.14.6 搭建Caffe

Caffe深度学习框架是比较老的,要不是要做一些特殊硬件相关的工作,我也不会想去配置Caffe,所以大家能用TF和MXNet尽量用吧,或者caffe2

安装Caffe最大的坑就是它和很多新版本的依赖兼容相性差,所以大家在装的时候尽量从安装较老版本的依赖,我在下面会给大家一些推荐。


本地环境

系统:macOS Mojave 10.14.6 64bit 
目标:CPU only Caffe


安装homebrew和anaconda

根据官网的建议,我们需要用homebrew来安装管理软件和包,使用anaconda来管理Python。

在terminal中依次输入下述命令即可安装homebrew:

  • xcode-select --install        //如果已经事先安装Xcode命令行工具,可忽略这一命令
  • /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

可以通过brew命令了解是否安装成功。

接下来安装anaconda:

直接去官网下载安装包,建议使用anaconda3,然后通过以下命令来创建修改Python版本环境

  • //格式:conda create --name env_name package_names
  • conda create --name py27 python=2.7

然后用以下命令在base环境和你创建的环境中切换

  • source activate py27 //进入名为py27的环境 env_name=py27
  • conda deactivate //退出当前环境,回到默认环境

需要注意的是不同环境直接的某些包和依赖不能共用,要个安装各的


开始安装各类依赖

Openblas和我也没去了解的东西(这些东西不太考虑版本,所以先安装好):

  • brew install -vd snappy leveldb gflags glog szip lmdb doxygen
  • brew install openblas
  • brew install hdf5

然后是OpenCV和boost-Python,别忘了和brew关联在一起:

  • brew install boost@1.59 boost-python@1.59
  • brew link boost@1.59 --force
  • brew link boost-python@1.59 --force
  • brew install opencv@3
  • brew link opencv@3 --force
     

如果没有上述命令出现问题,可能是你link了其他版本到brew上,你可以用unlink和brew解除并重新关联,或者直接卸载其他版本,我是强烈建议卸载其他版本的,这样可以避免很多问题,你可以通过brew info 命令或brew search命令查看自己安装的东西的版本。

接下来是protobuf,由于brew没有提供合适的版本,我们直接下载3.5.1版本原码编译,注意请你先把其他版本的protobuf卸载,这样可以减少一些麻烦。先cd到合适的文件夹。

  • brew install wget  //若有可忽略
  • wget https://github.com/protocolbuffers/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.tar.gz //获取源代码
  • tar xzvf protobuf-all-3.5.1.tar.gz //解压
  • cd protobuf-3.5.1 //cd进去
  • ./autogen.sh
  • ./configure //有些教程没有这一步,我加了以后才可以找到Makefile
  • make //有makefile才可以用
  • make check
  • sudo make install
     

安装完成后,输入protoc --version可以看到相应版本号。


重头戏caffe

获取caffe代码,cd到合适文件夹

  • git clone https://github.com/BVLC/caffe.git 

开始编译

  • cd caffe
  • mkdir build
  • cd build/
  • cmake ..     //一般这一步会有一大堆问题出现,不要想着用make命令,因为make已经不支持C++11了,除非你能改出问题的头文件代码

我在cmake过程中出现的问题我都放在后面了,可以自己去看。如果成功,可以看到:

  • – Configuring done
  • – Generating done
  • – Build files have been written to: /Users/admin/caffe/build

上述表格中Python的interpreter、libraries、numpy的位置应该保持一致,“ /Users/admin/anaconda2/envs/py27”说明都是py27所指的python。

修改配置文件

CMakeCache.txt

  • set(Caffe_CPU_ONLY OFF) 替换成 set(Caffe_CPU_ONLY ON)

CaffeConfig.cmake

  • CMAKE_CXX_FLAGS:STRING=    替换成    CMAKE_CXX_FLAGS:STRING=-std=c++11
  • CPU_ONLY:BOOL=OFF    替换成    CPU_ONLY:BOOL=ON
  • USE_LEVELDB:BOOL=ON   //如果leveldb报错,可以试着改成OFF

修改完成后,继续编译caffe

  • make all

下面是成功标志:

  • [100%] Linking CXX shared library …/lib/_caffe.dylib
  • Creating symlink /Users/admin/caffe/python/caffe/_caffe.so -> /Users/admin/caffe/build/lib/_caffe.so
  • [100%] Built target pycaffe
     

继续,一般这两步不会出现问题:

  • make install
  • make runtest
  • make pycaffe

最后改验证caffe是否安装成功了:

  • source activate py27
  • python -c "import caffe"   //这一步很容易出问题,一般是模块缺失,我在下面列举了一下,百度一般也能解决。

如果提示 ImportError: No module named caffe,那还需要进一步将caffe中的python导入到解释器中,将环境变量放到配置文件里即可。

  • vim ~/.bash_profile
  • //在文件中加入配置信息 export PYTHONPATH=~/caffe/python:$PYTHONPATH
  • //关闭文件,输入下述命令,让环境变量生效 ,或者重启
  • source ~/.bash_profile

再次输入python -c "import caffe"若没出现任何错误提示,说明成功了,恭喜你!


使用anaconda的jupyter

打开anaconda-navigater,找到你之前配置的环境名字。

然后安装jupyter

之后就可以从这里进入了

或者你可以在py27环境里用sudo pip install jupyter-notebook安装,使用jupyter notebook命令进入

进去之后新建个Python文件,用import caffe试试,若不报错,恭喜,万里长征第一步结束了!繁重的caffe学习开始了!


一些错误汇总

error1:你可能会找不到vecLib.framewor,我帮你找好了

  • //vecLib include directory
  • vecLib_INCLUDE_DIR:PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers

errer2:

  • The dependency target "pycaffe" of target "pytest" does not exist ! 

网上各种病因千奇百怪,解决方法也很多,我的原因是boost安装了两个版本,删除一个就好了。

error3:

  • ImportError: No module named skimage.io

找不到模块,安装喽

  • sudo pip install 'networkx==2.2'     //注意此时我用的Python2.7,如果你版本不一样或许可以跳过这一步
  • sudo pip install -U scikit-image

error4:

  • ImportError: No module named google.protobuf.internal

解决方法

  • sudo pip install google

  • sudo pip install protobuf

其他注意事项:

使用Cmake命令注意实在build文件夹下,Make命令是在build上级目录。若使用Cmake,最后一步需要make all,也是在build下。(因为有两个makefile文件,所以提醒一下)

 


本文参考了以下文章:

Mac安装CPU-only Caffe :https://blog.csdn.net/qq_38712865/article/details/89267439

深度学习框架Caffe在Mac上的安装和测试 :https://www.linuxidc.com/Linux/2016-06/132548.htm

caffe官网 :http://caffe.berkeleyvision.org/install_osx.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: macOS Mojave 10.14.6 是苹果公司推出的操作系统版本,它是 macOS Mojave 系列的最新版本。它包含了一些新的功能和改进,例如增强的隐私和安全性、更好的桌面堆栈、新的动态桌面背景、更好的屏幕截图和屏幕录制等。此外,它还修复了一些漏洞和错误,提高了系统的稳定性和性能。 ### 回答2: macOS Mojave 10.14.6 是苹果公司推出的一款操作系统,它于2019年7月30日正式发布,主要针对Mac电脑。随着Mac电脑日益普及,越来越多的人开始选择Mac作为自己的操作系统,而macOS Mojave 10.14.6则是其中最新的版本,为用户提供了更加稳定和安全的使用体验。 此版本的新特性主要包括: 1.夜间模式:提供了可自动调整颜色、对比度和亮度的夜间模式,这种模式在晚上使用电脑时可以减轻眼部疲劳,并且还可以自动开启关闭。 2.动态桌面:使用动态桌面可以更加轻松地查看最新的图片和消息。 3.桌面堆叠:将成堆的桌面文件堆叠在一起,能够使电脑桌面变得更加整洁。 4.更佳的截图工具:在Mojave 10.14.6中,截图工具得到了加强和改进,新增了注释和标记功能,从而可以快速、方便地进行编辑。 除此之外,该版本还在性能和安全性方面进行了强化,并对应用限制功能进行了改进,包括Mac App Store提供的应用程序、已在App Store进行过批准的第三方应用程序和已签名的应用程序等。这些改进进一步增强了Mojave10.14.6的安全性能,使其更加可靠和安全。 总之,macOS Mojave 10.14.6是一款优秀的操作系统,它不仅提供了新的功能和特性,同时也大幅度提升了Mac电脑的稳定性和安全性。如果你目前使用的是Mac电脑,无论是工作还是娱乐,升级到Mojave10.14.6是一项非常值得推荐的决定。 ### 回答3: macOS Mojave 10.14.6是苹果公司推出的操作系统,它于2019年7月22日正式发布。相比于先前的版本,macOS Mojave 10.14.6带来了各种新的功能和改进,进一步提升了用户的使用体验。 首先,macOS Mojave 10.14.6增加了 “电视” 应用程序,使用户能够轻松访问各种流媒体内容,包括电影和电视节目。同时,也加入了 “肖像模式” 功能,这使得用户可以拍摄具有艺术气息的照片。 此外,新版本还加入了全新的桌面堆栈功能,让您可以更加轻松地管理桌面上的文件。 除此之外,macOS Mojave 10.14.6还对隐私和安全进行了加强。用户现在可以更好地控制自己的摄像头和麦克风,以及对Mac上的数据进行加密。此外,系统还严格限制应用程序的访问权限,以确保用户的信息得到保护。 对于专业设计师和开发人员而言,macOS Mojave 10.14.6的改进也是能够立马感受到的。它增加了全新的图像编辑应用程序,允许用户通过更加直观和高效的接口进行编辑和修饰。此外,新系统还具有优化的编程环境,可以帮助程序员更快地创建和测试应用程序。 总的来说,macOS Mojave 10.14.6是非常优秀的操作系统,它为用户带来了一系列新的功能和改进,从而使得使用Mac的过程更加高效、安全、稳定,同时也确保了用户的隐私。如果你是Mac用户,不妨考虑升级到这一新版本,体验一下其中的新特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值