• caffe安装2


      洋洋洒洒一大篇,就没截图了,这几天一直在折腾这个东西,实在没办法,不想用Linux但是,为了Caffe,只能如此了,安装这些东西,遇到很多问题,每个问题都要折磨很久,大概第一次就是这样的。想想,之后应用,应该还会遇到很多问题吧,不过没办法了,骑虎难下!!这里有个建议是,如果将来要做大数据集,最好事先给Linux留多点空间,比如Imagenet,估计500G都不为过。另外,请阅读完,至少一个部分再进行动手操作,避免多余的工作,写作能力有限,尽请见谅。
            这篇安装指南,适合零基础,新手操作,请高手勿要吐槽!  
            简单介绍一下:Caffe,一种Convolutional Neural Network的工具包,和Alex的cuda-convnet功能类似,但各有特点。都是使用C++ CUDA进行底层编辑,Python进行实现,原作不属于Ubuntu 12,也有大神发布了Windows版,但其他相关资料较少,不适合新手使用,所以还是Ubuntu的比较适合新手。(相对而言)

           本文主要包含5个部分,包括:
    第一部分 Linux安装
    第二部分 nVidia驱动和CUDA Toolkit的安装和调试
    第三部分 Caffe的安装和测试
    第四部分 Python安装和调试
    第五部分 Matlab安装和调试     

    • 第一部分 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,谷歌或者百度解决方法吧,因为我也说不清这个具体怎么搞定。
    我的台式机,搞定了,可是笔记本,把Windows分区也给破坏了,最后只能重装Windows 8.1,但因为笔记本没有nVidia的GPU所以不想再折腾了。
    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安装手册,非常相近,32页的,不过是全英文的,我就是参考这个文档完成后面的配置和验证工作。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
    $ md5sum <filename>
    例如: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文的,这句话忽略。
    这里,保证网络不要中断就行了,吐槽一下:该死的锐捷认证,这Ubuntu都出到14.04了,你12版本的客户端还没出来,害我之前折腾了1整天网络,现在被迫沦落到蹭网族,有点想吐的感觉!!!!

    十、驱动装完了,可以回到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 <dir>
    安装到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如何安装
    • 第三部分 Caffe的安装和测试
    对于Caffe的安装严格遵照官网的要求来:http://caffe.berkeleyvision.org/installation.html

    一、安装BLAS,这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings,可以下载Student版的,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。
    接下来是安装过程,先授权,然后安装:
    $ tar zxvf cpp_studio_xe_2013_sp1_update3.tar.gz  (如果你是直接拷贝压缩文件过来的)
    $ chmod a+x /home/username/cpp_studio_xe_2013_sp1_update3 -R
    $ sudo ./install_GUI.sh
    PS: 这里安装的时候,我遇到一些插曲,先在这里特别提醒大家一下,避免在犯错,这些都是我安装的时候,遇到的"little bug"。
    1. 一个很2的问题,在启动linux的时候,手贱点了一下系统自动更新,可能正好更新到某个关键组件,授权的时候,始终无效,这个大概解决就是记得更新完,重启,然后关机,我弄的时候,重启也没用。
    2. 记得把解压后的studio_xe软件包丢到home下,或者干脆直接在home里解压,注意这里它是保存在home/username, 这里的username是你的用户名。这一步主要是,让安装程序处于linux的文件系统中,为了修改权限做保证。
    3. 使用chmod对文件夹及其子文件进行授权,安装程序是install_GUI.sh,它调用了install.sh,接下来又调用了一连串的文件,这些文件都必须具有可执行的权限,所以,你懂了~照着上面的步骤就好了
    4. 安装的时候,可以安装到root权限下,或者sudo权限,我是装在root权限下,避免麻烦,这时就必须确保已经为root设置过密码了,然后会让你输入你申请的时候发给你的序列号。没设置的话,执行:

    $ sudo passwd root

    5. Everything is OK!
    PS2:我不会告诉你,我第一次安装的时候,不仅仅装了Studio XE,还装了MKL,也装了OpenBLAS,为了装OpenBLAS还装来gFortran编译器,因为一直编译Caffe不通过,其实这都是白费功夫,都是没有认真读官网的说明导致的。至于这集中库的性能,应该是MKL>OpenBLAS>ATLAS,官网的介绍也提到。在装完MKL,需要做的一件事是:SET BLAS := open in Makefile.config,这个我在后面安装Caffe到时候会写。

    二、MKL与CUDA的环境设置
    文件夹切换到/etc/ld.so.conf.d,并进行如下操作
    1. 新建intel_mkl.conf, 并编辑之:
    $ cd /etc/ld.so.conf.d
    $ sudo vi intel_mkl.conf
    /opt/intel/lib/intel64
    /opt/intel/mkl/lib/intel64

    2. 新建cuda.conf,并编辑之:
    $ sudo vi cuda.conf
    /usr/local/cuda/lib64
    /lib

    3. 完成lib文件的链接操作,执行:
    $ sudo ldconfig -v

    三、安装OpenCV
    1. 下载地址:https://github.com/jayrambhia/Install-OpenCV,如果觉得难度不够的话,可以选择官网的安装包:http://opencv.org/,我这里是根据大神编译过的版本进行安装的。

    2. 切换到文件保存的文件夹,然后安装依赖项:
    sudo ./dependencies.sh

    3. 安装openCV,因为不知道有什么区别,所以就安装最新版opencv2_4_8吧,有偏好可以根据自己的要求进行设置: 
    sudo ./opencv2_4_8.sh
    保证网络畅通,因为软件需要联网这里时间较长,请耐心等待。。。,所以就安四、安装其他依赖项
     
    1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
    $ tar zxvf glog-0.3.3.tar.gz
    $ ./ configure
    $ make
    $ sudo make install

    2. 其他依赖项,确保都成功
    $ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
     
           如果安装过程中出现错误,E: Sub-process /usr/bin/dpkg returned an error code (1),可能是因为sudo apt-get install出现到意外,不用着急,可以试试这个解决办法:
    $ cd /var/lib/dpkg
    $ sudo mv info info.bak
    $ sudo mkdir info

    $ sudo apt-get --reinstall install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

    五、安装Caffe并测试
    1. 切换到Caffe的下载文件夹,然后执行:
    $ cp Makefile.config.example Makefile.config
    修改新生成的Makefile.config文件,修改“BLAS := mkl”,这个非常重要。
    $ make all
    $ make test
    $ make runtest 
    错误Fixed:
    1. 如果提示: make: protoc: 命令未找到,那是因为protoc没有安装,安装一下就好了。
    $ sudo apt-get install protobuf-c-compiler protobuf-compiler

    2. 提示“src/caffe/util/math_functions.cu(140): error: calling a host function("std::signbit ") from a globalfunction("caffe::sgnbit_kernel ") is not allowed”

    解决办法:
    修改  ./include/caffe/util/math_functions.hpp 224行
    删除(注释):using std::signbit;
    修改:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = signbit(x[i]));
    为:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = std::signbit(x[i]));
    这个方法感谢网友:嗆熱DJ$998。
    得到作者,大神Yangqing Jia的回复,解决方法如上,没有二致。

    六、使用MNIST数据集进行测试
    Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
    1. 数据预处理
    可以用下载好的数据集,也可以重新下载,我网速快,这里就偷懒直接下载了,具体操作如下:
    $ cd data/mnist
    sudo sh ./get_mnist.sh

    2. 重建LDB文件,就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpe文件都要处理成这个格式
    $ cd examples/mnist
    sudo sh ./create_mnist.sh
    生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹,这里包含了LDB格式的数据集

    3. 训练mnist
    $ cd examples/mnist
    sudo sh ./train_lenet.sh

           至此,Caffe安装的所有步骤完结,下面是一组简单的数据对比,实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。可以看到明显的差别了,虽然MNIST数据集很简单,相信复杂得数据集,差别会更大,Ubuntu+GPU是唯一的选择了。
    测试平台:i7-4770K/16G/GTX 770/CUDA 6.5
    Windows8.1 on CPU:620s
    Windows8.1 on GPU:190s
    Ubuntu 14.04 on CPU:270s 
    Ubuntu 14.04 on GPU:160s
     
    • 第四部分 Python安装和调试
    1. 安装caffe必须的一些依赖项:
    $ sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython 
     
    2. 配置路径,编辑Makefile.config
    PYTHON_INCLUDE := /usr/include/python2.7
                                        /usr/lib/python2.7/dist-packages/numpy/core/include
    PYTHON_LIB := /usr/local/lib

    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

    3. 这里非常重要的是,为了确保支持Caffe Notebook里的程序,需要使用到IDE环境,并且支持iPython输出。 
     
    • 第五部分 Matlab安装和调试
    1.下载
    由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载24小时删除......
     
    2. 预准备
     选择Mathworks.Matlab.R2014a.Unix.iso - 右键 - 使用磁盘映像挂载器打开” 
    进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹 
    (PS:我的原则是能GUI就GUI,喜欢CMD的可以参照执行) 
    复制Crack/install.jar至 home/Matlab/java/jar/ 并覆盖源文件
     
    3. 授权安装文件夹
    $ chmod a+x Matlab -R

    4. 安装
    $ sudo ./instal
    选项:不使用Internet安装
    序列号: 12345-67890-12345-67890  
    默认路径:/usr/local/MATLAB/R2014a 
    激活文件:license_405329_R2014a.lic
    拷贝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64 
    安装完毕,程序默认启动路径:
    $ sudo MATLAB/R2014a/bin/matlab  

    5.创建快捷方式
    1. 软件中心搜索matlab 
    2. 选择安装目录:/usr/local/MATLAB/R2014a

    6.配置Caffe
    修改文件:Makefile.config
    MATLAB_DIR := /usr/local/MATLAB/R2014a

    7.编译Matlab用到的caffe文件
    $ make matcaffe
  • 相关阅读:
    jython resources
    Installing a Library of Jython ScriptsPart of the WebSphere Application Server v7.x Administration Series Series
    jython好资料
    ulipad install on 64bit win7 has issue
    an oracle article in high level to descibe how to archtichre operator JAVA relevet project
    table的宽度,单元格内换行问题
    Linux常用命令大全
    dedecms系统后台登陆提示用户名密码不存在
    登录织梦后台提示用户名不存在的解决方法介绍
    Shell常用命令整理
  • 原文地址:https://www.cnblogs.com/Erdos001/p/4592550.html
Copyright © 2020-2023  润新知