mac pro 配置caffe记录

来源:互联网 发布:长春java 编辑:程序博客网 时间:2024/06/09 12:39

换成了mac,需要配置caffe环境,所以将过程记录下来
我的mac配置是:10.10.5的系统,2.2GhHz core i7的处理器。由于我不是NVIDIA 的gpu,所以我不能用gpu加速,所以我只安装cpu only 的caffe
安装caffe分为以下几步:

  • 下载安装homebrew:homebrew官网 给出了下载homebrew的命令行,十分简单,复制命令行到终端,即可下载,然后无脑安装即可

  • 下载安装anaconda python:anaconda官网 选择mac版下载,我下载的是 python2.7的版本,当然也可以用命令行下载了,然后无脑安装即可,接着!将Anaconda的bin路径添加到PATH环境变量中:export PATH=~/anaconda/bin:$PATH

  • 下载安装CUDA及驱动: CUDA官网下载地址 选择最新版的CUDA7.5下载,CUDA驱动 选择最新版下载,然后都安装即可,接着!将CUDA的bin路径添加到PATH环境变量中:export PATH=/Developer/NVIDIA/CUDA-7.5/bin:$PATH。然后!将CUDA库的路径添加到系统动态链接库搜索路径中:export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-7.5/lib:$DYLD_LIBRARY_PATH 其实我在做这一步的时候发现,通过export添加的环境变量不能永久保存,每次重新打开终端时,这个变量就消失了,所以我将这两个环境变量写到了一个配置文件里面,每次打开终端,这个配置文件都会自动运行。

  • BLAS:因为听说mac自带的线性代数BLAS不太稳定,所以需要配一个专门的库,可选择的有:ATLAS,MKL,OPENBLAS。MKL是一个商业库,但是如果是学生或者研究者,则可以免费申请使用这个库,我就是下载的这个MKL。首先需要去intel MKL for student 利用学生邮箱注册一个账号,然后申请mkl for student,其实是Parallel Studio XE Composer Edition for C++ OS X*,这里要注意的是:因为这是一个studio 所以比较大,1.5G的样子,只能通过浏览器下载(不能用迅雷下载,否则下载下来的包无法安装,可能是因为设置了不能使用多线程下载的缘故),然后点击安装即可。这个过程大概需要几天(两天)时间。安装完成之后,使用命令cd /opt/intel/mkl/lib/sudo ln -s . /opt/intel/mkl/lib/intel64 是因为:在编译Caffe时Caffe会从MKL的intel64目录中去搜索MKL的库,但是在安装MKL后,MKL的lib目录下并没有intel64这个目录,所以需要建立一个intel64目录到lib目录的软链接。

  • 我没有NVIDIA的gpu,所以跳过安装cudnn这一步

  • 安装opencv和一些依赖项:这个过程我干得十分混乱,重新来了好几次,过程中一直都有warning出现,而我又不清楚具体是哪里出了问题,虽然最终caffe是可以用了,但是我仍然担心可能出现问题,所以这一步我仅仅是记录我的过程,甚至还漏掉了几步我的过程,大家能不参考就不要参考了 >< !过程如下:
    我首先是根据一个教程,先输入brew edit opencv,结果出错,是关于opencv的错,因此只好重新找教程,然后使用下面的代码

for x in snappy leveldb gflags glog szip hdf5 lmdb homebrew/science/opencv;do    brew uninstall $x;    brew install --fresh -vd $x;donebrew uninstall --force protobuf; brew install --with-python --fresh -vd protobufbrew uninstall boost boost-python; brew install --fresh -vd boost boost-python

简单的说,就是把这一块代码复制到终端运行,他会自动下载snappy,leveldb等东西,(在下载过程中出现了多次fail的情况,很多是因为time out的原因),当这些命令结束后,我再次使用brew edit opencv,就不再出错,然后我将其中的

args << “-DPYTHON#{py_ver}_LIBRARY=#{py_lib}/libpython2.7.#{dylib}”args << “-DPYTHON#{py_ver}_INCLUDE_DIR=#{py_prefix}/include/python2.7″

改成:

args << “-DPYTHON_LIBRARY=#{py_prefix}/lib/libpython2.7.dylib”args << “-DPYTHON_INCLUDE_DIR=#{py_prefix}/include/python2.7″

(如果你原本两行和我最上面的两行不一样也没有关系,仍然改成我下面两行)
然后,由于我觉得我上面下载依赖项时出了很多问题,所以我又按照caffe官网的配置过程,使用了一遍:

brew install --build-from-source --with-python -vd protobufbrew install --build-from-source -vd boost boost-python
  • 克隆caffe代码:
git clone https://github.com/BVLC/caffe.gitcd caffecp Makefile.config.example Makefile.config
  • 配置Makefile.config:这一步还挺关键的,我也重复了很多次。打开Makefile.config,

    1. 取消CPU_ONLY := 1的注释
    2. 1.将BLAS改成:BLAS := MKL(注意MKL大写,小写有问题)
    3. 检查python 路径(由于我使用的是anaconda python):注释掉 PYTHON_INCLUDE := /usr/include/python2.7 \
      /usr/lib/python2.7/dist-packages/numpy/core/include

      然后将下面的两行取消注释,并改成这样:ANACONDA_HOME := $(HOME)/anaconda
      PYTHON_INCLUDE := $(ANACONDA_HOME)/include/python2.7 \
      $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \

      注释掉:# PYTHON_LIB := /usr/lib,然后取消PYTHON_LIB := $(ANACONDA_HOME)/lib的注释,就是这3步。
  • 设置环境变量:export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH 这一条指令来自于caffe官方网站(我还使用了我找的一个讲如何配置caffe的网站中设置环境变量的一句命令,还改了其中的一点参数,但是我不记得改的地方是什么了>< !)

  • 编译caffe:
make cleanmake allmake testmake runtestmake pycaffemake distribute

在make all时,会出现warning,但是目前并没有影响使用,所以暂时不解决这个问题了。安装好caffe后,我已经在mnist上跑过,确认caffe能行!但是不能确保跑其他网络也是能行的,有问题我再更新!

装好caffe之后,在caffe/python目录下面能够import caffe,但是其他目录都不能import caffe,报错为没有caffe 这个 model,因此在xxx/anaconda/lib/python2.7/site-packages下面建了一个caffe.pth的文件,里面内容为xxx/caffe-master/python,前面的xxx都是你自己是什么路径就改成什么路径,然后,就可以在任何目录下使用python时,import caffe了

使用export PYTHONPATH=$PYTHONPATH:/xxx/caffe-master/python只是临时的将路径加入,一旦重启,就没有了
但是可以将这句话放入~/.bash_profile文件中,这样的话,一旦打开一次终端(或者连接到服务器,这个文件中的命令会自动运行),就不再是一次性的了

0 0