[置顶] caffe学习(1):多平台下安装配置Caffe

时间:2021-07-05 04:46:32

准备在这个专栏和大家分享一下自己学习深度学习的一些收获,也起到共同学习的作用!加油!

提到deep learning, caffe的大名自然是如雷贯耳,当然,除了caffe之外,还有很多其他的框架,如torch,mxnet...但是,就我自己这一个月的实验以及师兄的结论都是,caffe得出的实验performance要高于别的框架,可能是C++的威力吧~笑

OK,接下来准备在这个系列分享我使用和学习caffe的一些经验,首先自然是框架的配置了。这里我们分享一下在windows10和ubuntu14.04虚拟机下的Caffe配置(

一.Windows10 CUDA7.5 VS2013环境

1.软件准备

1.我使用的是系统是win10,首先要确保下载安装好visual stdio 2013,community版本下载链接在这,2014-Nov 12 Release Notes,这里建议大家最好将VS安装在默认C盘位置,不然之后编译可能会出现各种莫名其妙的问题

2.GitHub - BVLC/caffe at windows 这是微软修改的caffe windows版本,集成了caffe编译需要的第三方库,使用起来非常方便!下载好之后解压到任意位置,我这里是放在D盘下,接下来,到windows目录下,copy一份CommonSettings.props.example到CommonSettings.props

[置顶]        caffe学习(1):多平台下安装配置Caffe

然后用vs打开CommonSettings.props,

[置顶]        caffe学习(1):多平台下安装配置Caffe

我这里是默认使用GPU,CUDA版本为7.5,支持python的配置,大家可以根据自己需要进行调整,GPU对应CUDA版本和CudaArchitecture大致如下图

[置顶]        caffe学习(1):多平台下安装配置Caffe

注意如果需要使用python接口的话,推荐安装Miniconda 2.7 64-bit Windows installer(from Miniconda website)或者是Anaconda 2.7 64-bit Windows installer(Download Anaconda Now!)

然后对应修改CommonSettings.props,我这里安装的是Anaconda2

[置顶]        caffe学习(1):多平台下安装配置Caffe

3.接下来就是一些软件的安装了,首先下载CUDA,可以根据自己的GPU版本下载对应版本的CUDA,我这里下载的是CUDA7.5:https://developer.nvidia.com/cuda-downloads

下载完成之后就可以安装了,这里也是建议安装在默认位置,等待解压完成选择默认设置,等待安装完成即可.然后是CUDNN,https://developer.nvidia.com/cudnn ,貌似需要注册之后才能下载,应该不是很费事,下载cudnn v4

[置顶]        caffe学习(1):多平台下安装配置Caffe

下载完成后,把解压后的文件夹中的bin,lib/x64,include中的内容分别放至 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5中的bin,lib/x64,include三个子目录下,这是%CUDA_PATH%路径,如果不太确定可以去系统环境变量下查看,最后就是Anaconda2了,下载完成之后打开cmd,输入以下命令安装一些python库

conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf

至此,所有准备工作都已经完成了!

2.Caffe编译

打开D:\caffe-windows下的caffe.sln,将编译选项切换成Release

[置顶]        caffe学习(1):多平台下安装配置Caffe

[置顶]        caffe学习(1):多平台下安装配置Caffe

我这里删除了一些以后一般不会用到的工程,其实最主要的是caffe,libcaffe,pycaffe这三个,加快编译速度.然后我们先编译libcaffe,一般这个不出问题整个安装就没什么问题了。

[置顶]        caffe学习(1):多平台下安装配置Caffe

最开始VS可能会比较卡,这是在安装一些第三方库(opencv,boost之类的,microsoft用Nuget集成在了这一步),安装完成之后在D:\NugetPackages下的这些都是caffe编译所需的第三方库

[置顶]        caffe学习(1):多平台下安装配置Caffe

然后默默等待编译完成即可,大约需要十分钟

[置顶]        caffe学习(1):多平台下安装配置Caffe

看到这里之后,这次安装基本上已经成功了.接下来编译剩下的即可

[置顶]        caffe学习(1):多平台下安装配置Caffe

大功告成!

3.配置和使用

编译完成后,接下来做一些简单的配置:

1.首先,编译完成后的所有文件都在D:\caffe-windows\Build\x64\Release目录下,

[置顶]        caffe学习(1):多平台下安装配置Caffe

里面包含最重要的就是caffe.exe以及pycaffe,如果需要在别的机器上使用的话,只需要将Release文件夹拷贝过去即可,不需要再重新编译一遍

2.接下来我们做一些简单设置,首先打开环境变量设置,

[置顶]        caffe学习(1):多平台下安装配置Caffe

在user variables下新建PATH和PYTHONPATH,填写对应的文件路径,这样就可以便捷使用caffe和caffe python接口了,配置好之后我们打开cmd,先输入caffe,在python中import caffe,如果都不报错——证明你可以愉快的进入deep learning的殿堂了^_^

[置顶]        caffe学习(1):多平台下安装配置Caffe

3.安装git for windows,对于习惯Linux系统的人使用这个会更加方便,当然你只用命令行也可以,这个是可选项

4.测试

下面我们在mnist数据集上做测试,MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burge在这里下载这四个文件,解压到D:\caffe-windows\data\mnist中

[置顶]        caffe学习(1):多平台下安装配置Caffe

右键打开git bash here,输入:

../../Build/x64/Release/convert_mnist_data train-images.idx3-ubyte train-labels.idx1-ubyte mnist_train_lmdb
../../Build/x64/Release/convert_mnist_data t10k-images.idx3-ubyte t10k-labels.idx1-ubyte mnist_test_lmdb

这样,训练集和测试集就创建好了,将其拷贝至D:\caffe-windows\examples\mnist目录下

[置顶]        caffe学习(1):多平台下安装配置Caffe

进入该目录,打开lenet_train_test.prototxt,修改如下

[置顶]        caffe学习(1):多平台下安装配置Caffe

然后打开lenet_solver.prototxt,修改第二行即可,

[置顶]        caffe学习(1):多平台下安装配置Caffe

这里暂时不对这些配置文件做解释,只是安装完之后进行的测试,ok下面打开bash:

caffe train -solver=lenet_solver.prototxt -gpu 0

接着就可以看到一大串log出现,好像很厉害的样子!

[置顶]        caffe学习(1):多平台下安装配置Caffe

最后在测试集上的结果是99.13%!深度学习,很强势!

好了,windows下的安装配置就到这里告一段落了,训练大多数模型都已经没问题了

二.VM Ubuntu14.04下安装CPU版本的Caffe

大多数情况下,windows环境下的caffe能够完美完成Linux下caffe的功能了,但毕竟Linux是标准平台,网上的很多开源代码都是基于Linux下的caffe的,比如神经网络可视化工具deepvis,以及RGB大神的RCNN系列,而且大部分情况下只需要应用到Caffe在CPU下的版本,所以这里给出虚拟机下ubuntu14.04下安装caffe的过程

1.创建虚拟机

这里我使用虚拟机软件是VirtualBox.首先创建一个linux/ubuntu14.04/64位/4GB内存的名为caffe的虚拟机,这里内存官网建议是8GB,但是笔记本总内存才8GB,大家有条件的建议分8GB

[置顶]        caffe学习(1):多平台下安装配置Caffe

[置顶]        caffe学习(1):多平台下安装配置Caffe

接下来一路下一步,

[置顶]        caffe学习(1):多平台下安装配置Caffe

创建后点击启动,选择镜像,点击启动,

[置顶]        caffe学习(1):多平台下安装配置Caffe

下面就是创建虚拟机的一些常见操作了,贴几张关键的图吧

[置顶]        caffe学习(1):多平台下安装配置Caffe

点击continue后,漫长的等待。。。

重启之后,我们先安装一下VBox Additions

[置顶]        caffe学习(1):多平台下安装配置Caffe

选择设备下的安装增强功能,在终端中输入

cd /media/<USER>/VBOXADDITIONS_4.3.16_95972 (where <USER> is your user name)
sudo ./VBoxLinuxAdditions.run

在Virtual Box Manager, 点击Settings, 然后选择常规 | 高级 | 共享剪切板 | 双向,然后选择重启,这样虚拟机就可以充满全屏了,不再是一小块

[置顶]        caffe学习(1):多平台下安装配置Caffe

2.准备工作

首先安装必要的环境:

sudo apt-get update #更新软件列表   
sudo apt-get upgrade #更新软件
sudo apt-get install build-essential #安装build essentials
sudo apt-get install linux-headers-`uname -r` #安装最新版本的kernel headers

注意:官网缺少前两步,会导致CUDA安装失败

这也是个漫长的步骤,默默等待。。。

然后下载cuda7.5:

sudo apt-get install curl
cd Downloads/
curl -O "http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run"

这又是个漫长的过程。。。如果嫌这种方式太慢,可以去官网直接下载,然后复制进虚拟机,不过这种方式有时会出现一点问题

chmod +x cuda_7.5.18_linux.run #使其可运行
sudo ./cuda_7.5.18_linux.run #运行

说明:安装的过程中会显示最终用户许可协议(EULA),很长,可以按‘q’退出阅读,然后安装的时候不要安装显卡驱动,因为虚拟机是没法使用GPU的,具体如下:

  • Accept the EULA
  • Do NOT install the graphics card drivers (since we are in a virtual machine)
  • Install the toolkit (leave path at default)
  • Install symbolic link
  • Install samples (leave path at default)

[置顶]        caffe学习(1):多平台下安装配置Caffe

然后更新相应的库路径:

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/lib' >> ~/.bashrc
source ~/.bashrc

安装必要的依赖库:

sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml
sudo easy_install pillow

下载Caffe并安装Python依赖库

cd ~
git clone https://github.com/BVLC/caffe.git
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install

漫长的等待。。。

增加符号链接

sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7  
sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy

然后修改Makefile.config

cp Makefile.config.example Makefile.config  

用gedit打开Makefile.config(或者直接用vim在终端中打开修改也可以)

1)去掉 # CPU_ONLY: = 1 的注释

[置顶]        caffe学习(1):多平台下安装配置Caffe

2)在PYTHON_INCLUDE下, 把/usr/lib/python2.7/dist-packages/numpy/core/include替换成/usr/local/lib/python2.7/dist-packages/numpy/core/include

[置顶]        caffe学习(1):多平台下安装配置Caffe

3.编译Caffe

终于可以编译caffe了,这三句即可,如果前面配置一切正常,这里应该不会出错

make pycaffe  
make all
make test

依然是等待。。。

4.测试

这里我们测试一下CPU下的caffe能否正常运行即可:

首先为方便使用,我们将PYTHONPATH写入.bashrc中:

echo 'export PYTHONPATH=/home/<USER>/caffe/python' >> ~/.bashrc 
source ~/.bashrc

然后在终端中输入:python和import caffe

[置顶]        caffe学习(1):多平台下安装配置Caffe

一切正常

下面测试一下mnist数据集:

cd ~/caffe 
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh

然后编辑examples/mnist文件夹下的lenet_solver.prototxt文件,将solver_mode模式从GPU改为CPU

./examples/mnist/train_lenet.sh  

由于是使用CPU进行训练,所以速度会比较慢,大概三十分钟才能整个训练完

[置顶]        caffe学习(1):多平台下安装配置Caffe

配置过程主要参考官方文档:Ubuntu 14.04 VirtualBox VM · BVLC/caffe Wiki · GitHub

后面如果需要的话,还会继续添加在Ubuntu14.04中的caffe配置,但目前这两种已经够用了