为了使用caffe,特地装了linux系统,版本:Ubuntu14.04 X64 可参照 http://www.cnblogs.com/platero/p/3993877.html
这个博客写的更好http://www.haodaima.net/art/2823705
第一步:第一部分 Linux安装
Linux的安装,如果不是Linux粉,只是必须,被迫要用它来作作科研什么的,建议安装成双系统,网上方法很多,这里我就不详细写了,安装还算是傻瓜式的,和windows的过程类似,至于语言,如果觉得难度还不够大的话,完全可以装E文版的,我是装的简体中文版,我总共用分出的100G的空间来安装Ubuntu 14.04,这个版本是最新的版本,有个好处是,可以直接访问Windows8.1的NTFS分区,不用做额外的操作,而且支持中文,例如:$ cd /media/yourname/分区名字/文件夹名,当然GUI就更方便了
我的分区设置如下:
根分区:   50G,
Swap交换分区:16G ,这里,我设置和我的内存一样,据说小于16G的内存,就设置成内存的1.5-2倍
Home分区:剩余的34G
装好之后,重启电脑,有的人会直接进Linux,有的会直接Windows,谷歌或者百度解决方法
PS: 其实到现在感觉空间可能小了, 想想Imagenet 137G的训练文件,觉得应该把Home设置成300-500G以上,会更合适吧。下次安装的时候,再改了,现在暂时不想动了。
PS:今天还是重新装了,把home分区扩大到500G。所以建议真的要大数据实验的小伙伴,也趁早考虑。

PS: Ubuntu下访问网页总是很慢,让我深感它和Windows的差距,可是为什么还是有那么多人向往它呢?下面的办法可以解决部分访问的问题,特别是国外的网站,但是遇到一些调用了被墙的网站的东西,比如google的字体,还是没办法,仍然会在哪里转圈圈。这里似乎是操作系统的机制引起,Windows的浏览器会忽略那些错误,而Ubuntu下的浏览器会不停尝试。废话少说,部分问题的解决办法:
$ sudo apt-get install dnsmasq
$ sudo gedit /etc/dnsmasq.conf
找到 # resolv-file=
修改为:resolv-file=/etc/resolv.dnsmasq.conf
$ sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf
$ sudo gedit /etc/resolv.conf
删除所有域名服务器,保留:nameserver 127.0.0.1

第二部分:nVidia驱动和CUDA Toolkit的安装和调试
PS:这里其实可以参考nVidia 官方提供的CUDA安装手册。https://developer.nvidia.com/rdp/cuda-65-rc-toolkit-download#linux。一般要输入你的用户名和密码,就是下载6.5的那个账号。
一、Verify You Have a CUDA-Capable GPU
执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于https://developer.nvidia.com/cuda-gpus,就没问题了
$ lspci | grep -i nvidia

二、Verify You Have a Supported Version of Linux
$ uname -m && cat /etc/*release
重点是“x86_64”这一项,保证是x86架构,64bit系统

三、Verify the System Has gcc Installed
$ gcc --version
没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,不过Ubuntu 14.04是默认有的

四、Download the NVIDIA CUDA Toolkit
下载地址:https://developer.nvidia.com/cuda-toolkit
验证地址:https://developer.nvidia.com/rdp/cuda-rc-checksums
$ md5sum
例如:md5sum cuda_6.5.11_rc_linux_64.run ,这个文件的正确 md5 = a47b0be83dea0323fab24ca642346351
这个感觉蛮重要,我第一次安装的时候md5就没通过,强制安装,结果就有问题,后面重新下载了再安装了一次

五、Handle Conflicting Installation Methods
根据官网介绍,之前安装的版本都会有冲突的嫌疑,所以,之前安装的Toolkit和Drievers就得卸载,屏蔽,等等

六、Graphical Interface Shutdown
退出GUI,也就是X-Win界面,操作方法是:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。
关闭桌面服务:
$ sudo stop lightdm

七、Interaction with Nouveau
Nouveau是一个开源的显卡驱动,Ubuntu 14.04 默认安装了,但是它会影响nVidia驱动的安装,所以只有请他回老家了,sorry!

  1. 将nouveau添加到黑名单,防止它启动
    $ cd /etc/modprobe.d
    $ sudo vi nvidia-graphics-drivers.conf
    写入:blacklist nouveau
    保存并退出: wq!
    检查:$ cat nvidia-graphics-drivers.conf

  2. 对于:/etc/default/grub,添加到末尾。
    $ sudo vi /etc/default/grub
    末尾写入:rdblacklist=nouveau nouveau.modeset=0
    保存并退出: wq!
    检查:$ cat /etc/default/grub

  3. 官网提供的操作:
    $ sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
    然后重新生成initrd文件
    $ sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
    $ sudo update-initramfs -u
    上面那条是nVidia官方提供的命令,不知道为什么在我这里会提示dracut是不存在的命令,也许是版本问题,或者少了什么包,不过无所谓,第二条命令也可以搞定,应该是一样的功能。(如果我理解错误,欢迎小朋友们指教,我会改正)
    PS:其实,这一连串的工作,有点没搞懂,因为有的命令和文件不存在。原理理解了,但是步骤还是有点模糊,不过,我是照上面的操作完成了,后面的也没出问题,应该应付过去了吧。

八、Installation
鉴于安装过程中遇到的一些问题和启示,建议先安装官方最新版的显卡驱动,然后再安装CUDA,这里可能是CUDA内置的驱动不太完整,或者适应性差了一点。GTX显卡驱动的下载地址如下(Tesla版的驱动,请大家自己去nVidia的官网下载):
下载地址:http://www.geforce.cn/drivers
$ sudo sh ./NVIDIA-Linux-x86_64-340.24.run

切换到cuda_6.5.11_rc_linux_64.run 所在的目录,然后执行安装命令:
$ sudo sh cuda_6.5.11_rc_linux_64.run
再次提醒,安装前一定要执行 md5sum ,我第一次安装就是执行了,发现不一样,然后没有理它直接安装,导致安装的Sumary里显示Driver成功,Toolkit和Samples失败,第二次在装就好了。
至于如果发现md5检测不一致,怎么办?别逗了,去nVidia重新下载就行了,地球人都知道,别无限循环就好^_^!
这里会一路问你各种问题,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter, 其实就是让你接受协议,然后安装的默认位置确认等等,recruit就别自定义安装位置了,默认才是天堂。
安装完会提示丢失了四个库:libGLU.so, libx11.so, libxmu.so, libxi.so 这个木有关系,下一步就是解决这个问题的。

九、Extra Libraries
安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
这个可以切换到GUI界面在操作,要不然那些提示信息,都是乱码,什么都看不懂,不过如果你的系统是E文的,这句话忽略。这里,保证网络不要中断就行。

十、驱动装完了,可以回到GUI界面了,也可以继续留这里玩文本。。。
$ sudo start lightdm

十一、POST-INSTALLATION ACTIONS
这一步就是验证一下安装是否正确,编译和完成以下CUDA自带的程序,建议做一下~

  1. Environment Setup
    $ export PATH=/usr/local/cuda-6.5/bin:$PATH
    $ export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

  2. (Optional) Install Writable Samples
    $ cuda-install-samples-6.5.sh
    安装到Home下,搞定了之后可以在GUI下调整一下,主要是前面的要求,会有一个Sample的文件夹 NVIDIA_CUDA-6.5_Samples在Home的根目录下就ok了。因为后面编译测试各方面什么的方便。其实如果之前安装CUDA驱动和Toolkit一切正常,这一步基本可以省略,应该会自动建立,但检查一下无妨。

  3. Verify the Installation

a. 验证驱动的版本,其实主要是保证驱动程序已经安装正常了
$ cat /proc/driver/nvidia/version

b. Compiling the Examples
$ nvcc -V
不出意外的话应该会提示,nvcc没有安装,其实就是,nvidia-cuda-toolkit的编译器没有安装完整,总之,根据提示继续就好了
$ sudo apt-get install nvidia-cuda-toolkit
我这里还差接近400MB的文件要下载,它是全自动的,所以只要保证网络畅通,一杯咖啡在手,然后就可以XXX了。可悲的是,我这里天色已晚,隔壁的Wifi也断了,笔记本的360随身Wifi连上一会也断了,只有收东西回宿舍,明天再继续了。看看表,靠,00:03,今天打卡时间又错过了。

次日,这里安装完,就可以编译了,切换目录到~/NVIDIA_CUDA-6.5_Samples,记性没问题的话,应该还记得它是安装在Home文件夹的,穿越过去就好了,然后执行:
$ cd /home/username/NVIDIA_CUDA-6.5_Samples
$ make

c. Running the Binaries
运行编译好的文件,看看设备的基本信息和带宽信息:
$ cd /bin/x86_64/linux/release
$ ./deviceQuery
$ ./bandwidthTest

PS:如果测试的时候出现说运行版驱动和实际驱动不符(英文原文不记得了,没记下来),原因可能是因为后面安装的nvidia-cuda-toolkit更新了配置文件,所以和原始的Cuda-Samples的配置或者是驱动程序有变化,所以检测无法编译通过。考虑下面的解决方法:

  1. 卸载现有驱动
    $ sudo nvidia-installer --uninstall
  2. 下载合适版本的驱动,并安装:
    下载地址:http://www.geforce.cn/drivers
    $ sudo sh ./NVIDIA-Linux-x86_64-340.24.run
  3. 重装CUDA Toolkit
    $ sudo sh cuda_6.5.11_rc_linux_64.run
    好了,到这里所有nVidia CUDA的安装就结束了,下面看看Caffe如何安装

第二步:
原博主使用的是MKL,但我图省事,没有安装MKL,而是用了atlas,一句命令搞定
sudo apt-get install libatlas-base-dev

第三步:
opencv部分,用了https://github.com/jayrambhia/Install-OpenCV的ubuntu下的opencv-2.4.9的脚本
这里直接执行脚本的话,除了错误比较难以定位,所以我是把里面的命令一句一句手动执行的

其中遇到了下面几个问题:
sudo apt-get -y install libopencv-dev提示需要依赖项,
改用sudo aptitude install libopencv-dev
因为没有aptitude,先安装 sudo apt-get install aptitude

sudo apt-get -y install x264 v4l-utils ffmpeg
这一步因为找不到ffmpeg而中断

一般找不到包,就到下面的网址搜索,看哪个镜像上有这个源,添加到source里面就可以了
http://packages.ubuntu.com/

搜索ffmpeg,Distribution选any,因为可能是没有trusty的资源
然后添加镜像,
sudo gedit /etc/apt/sources.list
在sources.list里面加一行deb http://cn.archive.ubuntu.com/ubuntu vivid main universe
然后更新源
sudo apt-get update

然后sudo apt-get -y install x264 v4l-utils ffmpeg就可以了

搞定这三个比较麻烦的依赖项后,继续安装opencv

编译opencv的时候,脚本原有的代码是:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
这里我去掉了-D WITH_QT=ON,因为我没有装QT,但是需要加上-D BUILD_TIFF=ON,否则编译caffe的时候会有这样的错误
/usr/lib/libopencv_highgui.so.2.4: undefined reference to TIFFRGBAImageOK@LIBTIFF_4.0' 1>

编译过程如下:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D BUILD_TIFF=ON -D WITH_OPENGL=ON..
make -j4
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

第四步:
安装其他依赖项,没什么问题
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

第五步:
编译caffe:
开始出现了这个错误:
./include/caffe/util/io.hpp:8:18: fatal error: hdf5.h: 没有那个文件或目录
这里是因为没有按照hdf5库,因为这个库在anaconda里面已经有了,需要配置系统路径。
在~/.bashrc文件里面添加
LD_LIBRARY_PATH=youranacondapath/lib:LD_LIBRARY_PATH
export LD_LIBRARY_PATH
记住啊,youranacondapath替换成你自己的anaconda安装的路径,否则就太二了,我自己就犯了一次二.....

然后出现了这个错误
/usr/lib/libopencv_highgui.so.2.4: undefined reference to TIFFRGBAImageOK@LIBTIFF_4.0' 1>
/usr/lib/libopencv_highgui.so.2.4: undefined reference toTIFFReadRGBAStrip@LIBTIFF_4.0'
解决方式前面说了,就是编译opencv的时候要加上 -D BUILD_TIFF=ON

然后又出现了这个错误,这个错误曾让我苦恼了两天,还因此把系统搞崩溃一次....不得不重装
最后还是多亏了最开头提到的博客以及热心网友 _无声的雨 的帮助,非常感谢,当代活雷锋啊!
//usr/lib/x86_64-linux-gnu/libx264.so.142:对‘__exp_finite@GLIBC_2.15’未定义的引用
//usr/lib/x86_64-linux-gnu/libx264.so.142:对‘__log10_finite@GLIBC_2.15’未定义的引用
//usr/lib/x86_64-linux-gnu/libxvidcore.so.4:对‘__logf_finite@GLIBC_2.15’未定义的引用
//usr/lib/x86_64-linux-gnu/libvorbis.so.0:对‘__acosf_finite@GLIBC_2.15’未定义的引用

解决方法:如果你装了anaconda包的话,删除anaconda/lib/下面的 libm
sudo rm -rf libm*

最后编译成功,哈哈。
make all
make test

最后一步
make runtest

有错误
.build_release/test/test_all.testbin 0 --gtest_shuffle --gtest_filter="-GPU"
.build_release/test/test_all.testbin: error while loading shared libraries: libhdf5_hl.so.8: cannot open shared object file: No such file or directory
make: *** [runtest] 错误 127

这里按照开头提到的博客中红字的两段就能搞定
其实就是在LD_LIBRARY_PATH里面添加anaconda的路径,前面已经做过了。但因为我编译caffe时候用的是自己的用户,后来make runtest的时候用了root用户,两个用户从~/.bashrc不是一个,所以我索性两个都添上了。

好了,折腾了一周,装了两次系统,终于把caffe安装好了,接下来就是学习怎么使用了。
最后还是要谢谢这位博主:普兒,以及这位热心网友:_无声的雨
是你们让我感受的社会的温暖,一次又一次把我崩溃的心灵拯救回来,让我体会到了人间有真情。
要是哪位读者去这个博客看看,就能看到我在留言里问的各种小白问题了,哈哈。

caffe 安装记录的更多相关文章

  1. 20160512关于mac安装caffe的记录

    记得2015年在mac系统上安装过一次caffe,非常顺利,但是最近群里许多同学反映mac安装caffe出现了各种问题,同时我也在帮助别人安装caffe的时候也遇到了一些坑,不再像以前这么顺利了.估计 ...

  2. 最全caffe安装踩坑记录(Anaconda,nvidia-docker,Linux编译)

    Anaconda,nvidia-docker,Linux三种方式安装caffe 1.Anaconda安装caffe 1.首先安装anaconda 2.创建虚拟环境(python2.7) conda c ...

  3. windows环境Caffe安装配置步骤(无GPU)及mnist训练

    在硕士第二年,义无反顾地投身到了深度学习的浪潮中.从之前的惯性导航转到这个方向,一切从头开始,在此,仅以此文记录自己的打怪之路. 最初的想法是动手熟悉Caffe,考虑到直接上手Ubuntu会有些难度, ...

  4. caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记

    由于本机是window10系统,所以想尝试caffe就在自己电脑上整了一个虚拟机(详情可见:win10系统搭建虚拟机:VMware Workstation Player 12环境+Ubuntu Kyl ...

  5. [置顶] caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记

    由于虚拟机下的Ubuntu系统一般不包含GPU,故这次安装时为了在无GUP环境下运行caffe.所以只需安装CPU版本的caffe 由于本机是window10系统,所以想尝试caffe就在自己电脑上整 ...

  6. ubuntu166.04之Caffe安装

    写在前面:之前一直在搞keras,最近由于某些需求,需要学习caffe,在此记录caffe的安装记录.默认已经安装了cuda 如果是从其他的深度学习平台迁移到Caffe,那么按照这个教程来就可以了. ...

  7. Caffe 安装 Ubuntu14.04+CUDA7.0/7.5(亲测有效)

    自己安装Caffe的过程中,参考了很多资料,但由于版本或者其他原因,安装过程中总是遇到这样或者那样的问题,因此留做记录,方便之后查看,也希望对遇到相似麻烦的朋友们提供帮助.  下面我们开始安装吧: 硬 ...

  8. 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL

    前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...

  9. 关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用

    关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用   工作环境:window下 在一切的最开始,安装node.js (中文站,更新比较慢http://nodejs.cn/) ...

随机推荐

  1. Navicat MySql乱码解决

    接着上一篇博客继续解决 如上图,鼠标放在localhost上右键,选择编辑连接,弹出下图. 如下选择好之后,连接数据库,进行测试.在test数据库上右键选择命令列界面,如下图,输入show varia ...

  2. gulp实用配置(1)——demo

    在React和Vue推进下,现在很多人都在使用webpack作为自动化构建工具,但其实在很多时候我们并不是一定需要用到它,gulp这样的轻量级构建工具就足够了. 最近一段时间不是太忙,所以就写了三份配 ...

  3. drupal7设置不含www的url跳转到含www的url

    打开drupal的.htaccess文件 找到 If your site can be accessed both with and without the 'www.' prefix 将下面对应的三 ...

  4. Difference between model.evaluate vs model.predict in Keras

    The  model.evaluate  function predicts the output for the given input and then computes the metrics ...

  5. vue + skyline 搭建 一个开发环境

    1.之前用的是ext +  skyline搭建环境 ,正好最近是做前端的事情,有时间用vue + skyline 搭建一个三维场景 2.准备vue 2.x  ,UI 用的是iview 和element ...

  6. GitHub已将持续集成服务器Janky开源

    GitHub已将Janky开源,这是他们构建在Jenkins之上的持续集成服务器,并在其中增加了聊天自动化工具Hubot. 除了一般的Jenkins功能之外,Janky还通过Hubot对功能进行了补充 ...

  7. react的基本概念

    数据流向 数据的改变发生通常是通过用户交互行为或者浏览器行为(如路由跳转等)触发的,当此类行为会改变数据的时候可以通过 dispatch 发起一个 action,如果是同步行为会直接通过 Reduce ...

  8. lock free数据结构内存回收技术-hazard pointer

    lock free数据结构一般来说拥有比基于lock实现的数据结构更高的性能,但是其实现比基于lock的实现更为复杂,需要处理的难题包括预防ABA问题,内存如何重用和回收等.通常,最简单最有效的处理A ...

  9. 将mongodb设置为windows服务

    [转载] [转载]安装mongodb以及设置为windows服务 详细步骤 将mongodb设置成windows服务,这样就不用使用命令启动了,设置方法如下: 1.在data文件夹下新建一个log文件 ...

  10. 纲举目张:打通MySQL架构和业务的任督二脉

    目前,在很多OLTP场景中,MySQL数据库都有着广泛的应用,也有很多不同的使用方式.从数据库的业务需求.架构设计.运营维护.再到扩容迁移,不同的MySQL架构有不同的特点,适应一定的业务场景,或者解 ...