您的位置:首页 > Web前端

CNN之Caffe配置

2014-06-09 13:41 218 查看
CNN之Caffe配置

(转载我老大的)

*************************************************************************

最近跟师兄一起做一个东西,需要用到CNN,于是找到了Caffe,实验跑起来了,于是也应实验室的人要求写一份配置文档,还想叫我写Caffe的文档。。可是不懂写啊,而且Caffe也不是很复杂,自己看就好了。

 

 

 

Caffe是实现卷积神经网络算法的一个框架,主打速度,可以在CPU或者GPU上运行,而且可以随意切换,具体可以看官网。配置的教程也是按照官网给出的教程

一. 需要准备的东西

1. CUDA (6.0)

下载地址:https://developer.nvidia.com/cuda-downloads

下载完之后切换到控制台(Ctrl+Alt+F1~F6),登陆之后把桌面环境给关了:

sudo service lightdm stop


然后执行刚才下载的文件

sudo sh 文件名.sh


安装完成之后重新打开桌面环境就好了

sudo service lightdm start


可能安装过程中会提示Mouveau跟Nvidia模块冲突,这时候需要把Nouveau给禁用了,打开下面文件

sudo vim /etc/modprobe.d/nvidia-graphics-drivers.conf


添加以下内容:

blacklist nouveau
blacklist lbm-nouveau
blacklist nvidia-173
blacklist nvidia-96
blacklist nvidia-current
blacklist nvidia-173-updates
blacklist nvidia-96-updates
alias nvidia nvidia_current_updates
alias nouveau off
alias lbm-nouveau off


卸载之前安装过的所有nvidia驱动:

sudo apt-get remove --purge nvidia-*


然后重新生成initrd文件:

sudo update-initramfs -u


添加下面的内容到文件 /etc/default/grub 中

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"


然后重复上面步骤。

 

2.MKL

这个软件叼炸天,卖得也很贵,幸亏可以申请非商业版,去这个地址申请吧(https://registrationcenter.intel.com/RegCenter/NComForm.aspx?ProductID=1461&pass=yes),申请成功之后你会得到一个序列号以及下载地址,下载完并解压之后按提示安装就好了,这个安装特别简单。

(下载后,并解压,cd进入目录,然后运行install.sh文件即可)

 

3.OpenCV

网上有好事者直接给出了安装&配置脚本,省心又省力。。下载地址(https://github.com/jayrambhia/Install-OpenCV/tree/master/Ubuntu)

 (参考这个比较好,简单快捷: https://help.ubuntu.com/community/OpenCV)

4.安装一些Caffe需要用到的库:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev


还需要安装一个名为glog的库,他主要是提供了强大的日志输出功能:

wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz tar zxvf glog-0.3.3.tar.gz
./configure
make && sudo make install


 

5.Python

如果你不打算用python,跳过吧。。。

文件 python/requirements.txt 列举了Caffe依赖的python库,最简单的方法是用pip安装,pip的安装方法:

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py sudo python get-pip.py


然后开始用pip安装刚才的依赖吧:

sudo pip install -r python/requirements.txt


啊,是不是速度有点慢?有时候还连接不上。。。换个国内镜像吧,先打开文件 ~/.pip/pip.conf,加入下面内容:

[global]
index-url = http://pypi.tuna.tsinghua.edu.cn/simple[/code] 
上面的镜像是教育网的,你可以改公网的:

http://e.pypi.python.org/simple


好吧,慢慢等吧。。。

 

其实我不会告诉你我是手动装的,因为总是遇到一堆问题,我都无语了。。问题列表:
安装h5py

出现下面错误:

h5py/api_compat.h:22:18: fatal error: hdf5.h: No such file or directory


解决办法是

sudo apt-get install libhdf5-serial-dev


然后又提示找不到 mpi.h。。。我改了C_INCLUDE_PATH/CPLUS_INCLUDE_PATH都不行,于是只好手动下载编译安装了。。

h5py的github地址:https://github.com/h5py/h5py,下载完之后:

python setup.py build_ext --include-dirs=/usr/include/mpi
sudo python setup.py install


安装scipy

需要安装lapack跟gfortran:

sudo apt-get install liblapack-dev gfortran


 

准备工作差不多了吧,开始make吧。。。哦~对了,如果你需要在Matlab上用Caffe,你还得装Matlab(感觉是废话。。)

 

二. 编译

我不会告诉你这是我遇到最多问题的,帮实验室配了几台机子,不同电脑出现不同问题,差点崩溃。。。要看到问题,还是得先输入,需要修改Makefile.config,把路径都设对。

cp Makefile.config.example Makefile.config
make


好,开始说我遇到的问题了。。。

1. 提示 make: protoc: Command not found,好吧,需要安装protoc-c

sudo apt-get install protobuf-c-compiler protobuf-compiler


2. 对了,刚才在准备阶段装的cuda/MKL貌似还没把它们的lib路径加进去。。。

我都是直接在/etc/ld.so.conf添加配置文件的,添加完之后直接输入即可完成lib的链接工作。

sudo ldconfig -v


主要分了两个文件:

intel_mkl.conf

/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64


cuda.conf

/usr/local/cuda/lib64
/lib


 

3. 遇到Gtk3 backend requires pygobject to be installed的问题

这是backend的问题,换一个就可以了,需要修改matplotlibrc文件,这个文件可以通过以下python代码找到:

import matplotlib
matplotlib.matplotlib_fname()


尝试不同的gui backends即可:
TkAgg

WX

QTAgg

QT4Agg


 

有些问题没记录下来,大概也就不记得了。。

Caffe配置都到此为止。

*****************************************************************************

for ddk:

problems:

   1 error while loading shared libraries: libcudart.so.6.0: cannot open shared object file: No such file or directory

     ->  32-bit: 
sudo
ldconfig /usr/local/cuda/lib


64-bit: sudo
ldconfig /usr/local/cuda/lib64


(refer: http://blog.csdn.net/shenchong721/article/details/21529295)[/code] 

 
2 could not found -lcblas.so
could
not found -latlas.so
caffe
build/lib/libcaffe.so  Error
->
sudo apt-get install libatlas-base-dev

3
ImportError: You need `six` version 1.3 or later.
->
sudo pip install six

4
missing recommend libary libGLU.so libXmu.so
->
sudo
apt-get install libglu1-mesa libxi-dev libxmu-dev

see http://stackoverflow.com/questions/22360771/missing-recommended-library-libglu-so[/code] 
****************************************************

run sh文件时遇到的问题:

1  Cuda kernel failed. Error: invalid device function

   ->

     int current_device;
   current_device = 0 ;
   CUDA_CHECK(cudaGetDevice(¤t_device));
    if (current_device == 0) {
    return;
   }
   忽略参数device_id,人工强制将current_device置为你检测到的显卡

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CNN caffe 配置教程