转载请附上本文链接:https://www.cnblogs.com/acgoto/p/11570188.html

一、前言

  为了安装caffe,本人已经在centos7.x上试错了1次,目前弃疗~;在Ubuntu18.04上试错了3次,目前也弃疗~不是我懒,说实话,bug是真tm多,问问度娘,自己体会体会~我一向喜欢安装最新版本的软件,但是关于最新版本软件的文章少之又少,也因此受尽各种折磨.......即使有,我想要解决的bug不一定是别人出现的bug......,然后就会用各种各样的办法搜遍天涯海角,陷入无法自拔的困境......对此,为了节省不必要的安装时间,最终我还是选择了Ubuntu16.04,痛改前非,决定重新做人!

  长文预警⚠:本文篇幅较长,望耐心看完!!!安装过程中尽量用正确的方式下载各种依赖,若有错误记录将会一一列出详细解决方案!请务必和我一样重新从安装Ubuntu16.04开始(除非你自己拥有一台服务器并且是Ubuntu16.04版本,OK!鼠标滚轮往下滑,直接跳到大标题五开始进行阅读操作!),然后就耐心地跟着我一路开挂人生吧!好了,废话不说,进入正题!若文中有术语或技术等描述错误,欢迎在评论区中指出我的错误,非常感谢!

  强烈建议:安装虚拟机vm15版本的,目的是适配win10系统版本。若安装vm14版本,则连接本机的摄像头时可能出现“卡死”现象!

  想要卸载原来的Ubuntu xx版本,请阅读大标题二,下面给出卸载方法,so easy!

二、卸载VMware虚拟机上任何XX操作系统

  首先,将挂起或正在运行的客户机关机,然后点击虚拟机--->管理--->从磁盘中删除,将会删除之前安装XX操作系统的整个文件目录!镜像文件不会被删除的,放心跟着操作就完事了~

三、安装虚拟机和Ubuntu16.04

  虚拟机14版本和乌班图下载链接: https://pan.baidu.com/s/1ErZNhZR9J2FJ-XVRVKScBw 提取码: 96f0

虚拟机15版本下载链接:https://pan.baidu.com/s/1XvKG29FH7Asggri8ssJjsw 提取码: 56us

  关于如何安装虚拟机14 Pro?(建议安装vm15)这里演示一下安装过程和提供所需的许可证密钥。各种版本的安装都大同小异~

  接下来的教程基本是图片,必要时我会用文字来描述,多谢合作~

vm14许可证密钥:AA510-2DF1Q-H882Q-XFPQE-Q30A0

vm15许可证密钥:YZ380-0WG50-M891Z-9DNQ9-MPA90

  到这里虚拟机已安装完成!

  关于如何在虚拟机安装Ubuntu16.04?相信人手一个VMware® Workstation 12(或者14) Pro和一个ubuntu16.04镜像,本人电脑安装的虚拟机是14版本的,由于所有已经配置成功就不想重装了,刚好舍友还没装,就帮他装一下,顺便记录这整个安装过程!

 

上面操作完之后可能由于有些电脑没有开启"虚拟化",如果点击开启此虚拟机后没有弹窗报错的话,那就说明你的电脑已开启虚拟化功能,具体查看方式:任务栏右键--->任务管理器--->性能--->虚拟化。否则将会弹窗提示你进BIOS开启支持一下虚拟化功能,具体百度按照该提示来操作吧,非常简单,这里就不贴图了~

 

 

 

点击"现在重启",按Enter键稍等1、2分钟,显示登录界面,输入密码,显示如下,即安装成功!

 

注意:不要升级Ubuntu,也没必要,能用就行了!!!

有一个强迫症设置:当挂起客户机并关掉虚拟机后,虚拟机的托盘图标怎么不会消失?问题不大,只需简单的设置:点击编辑--->首选项--->下拉菜单选项:选择当虚拟机开机时,然后点确定,关闭虚拟机后,托盘图标就没了!

另外还有一个非常重要的网络设置:推荐使用NAT模式:用于共享主机IP地址,具体原因自己百度吧~这里只是一个使用教程......如何设置呢?首先挂起当前客户机,然后关机,或者直接关机,然后点编辑虚拟机位置,点击网络适配器,选择NAT模式,点确定,再重新开启此虚拟机即可!这样每次开启或继续运行Ubuntu系统应该会默认与主机共享网络,若没有网络,点击右上角打开链接网络即可。

四、安装VMware Tools,设置窗口自适应、实现与主机复制黏贴功能

  首先设置root密码,右键桌面打开终端,输入: sudo passwd root ,设置完成之后输入: su root (切换到root角色),输入密码: root 即可登录成功,当要退出root角色时,只需键入 exit 命令即可退出。

  以下都是在root角色下操作,反正是作为个人练习的,没必要每次都sudo...但是到公司上班就很少有这高级权限了,所以好好瞧瞧root有多高级的功能......快乐就vans!删库跑路( rm -rf /* )不要来找我!!!

  有些人可能点击安装VMware Tools(T)...之后,出现如下提示,当点击是(Y)之后,打开文件发现里面没啥东西???别慌,我们只需做简单的几步设置即可安装VMware Tools工具:先关闭客户机,然后点击编辑虚拟机位置,选择使用物理驱动器,点确定开启客户机,再重新来操作一遍即可。

  双击进入VMware Tools,右键点击复制文件到桌面,桌面右键打开终端,依次键入命令: ls  --->  cd 桌面/  --->  tar -zxvf xxx.gz文件 。这里有一个小技巧:输入文件开头1个或多个字符,按TAB键后将会自动补全文件名,然后按Enter回车即可解压xxx.gz文件。接下来,进入解压目录,键入命令: ./vmware-install.pl ,回车时若有提示[no]则输入 yes ,其他一路直接回车即可。最后输入命令: reboot 重启乌班图,然后设置一下自适应就可以实现窗口自适应、与主机黏贴复制功能了!

五、安装深度学习框架caffe

1、由于本人电脑不支持GPU,故选择CPU安装caffe。具体查看方式:键入命令: lspci | grep -i nvidia ,若按回车之后没有显示任何内容,则证明你的电脑不支持GPU。如果支持,最好就用GPU方式安装吧,自行百度去==!安装caffe之前,不,准确来讲,只要安装好Ubuntu系统之后就得更换一下国内下载源,一般推荐是阿里源,不然当你下载各种依赖时,简直是慢得要命QAQ......下面看操作:注意以下操作都是在root最高权限角色下操作⚠!这样就避免了每次输入命令都要多敲几个字符sudo,还有登录密码.......(重要的建议:不仅仅如此!由于root角色可修改一切文件,而默认创建的用户角色可能没有操作其他用户组中文件的权限,为了简单方便,建议都在root角色下执行把~)(不要学本人,这样习惯不好)

1.1 备份原来的下载源文件:

cp /etc/apt/sources.list /etc/apt/sources_init.list

1.2 使用gedit命令(或vim)打开文档,将下面的阿里源内容覆盖掉原文档中的内容,按ctrl + S保存并关掉文件。

gedit /etc/apt/sources.list 或者 vim /etc/apt/sources.list

 deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

1.3 然后更新工具源,输入命令: apt-get update ,你将会看到下载得飞快.......b( ̄▽ ̄)d

1.4 更新工具软件:输入命令: apt-get upgrade ,大概2分多钟就更新下载完......

  执行完此条命令之后会出现如下图某些包无法下载,根据提示执行命令: apt-get update --fix-missing ,然后重新执行一下上条命令: apt-get upgrade 。大概要等待4、5分钟,更新完之后如下第2张图。

1.5 逐条执行以下命令来安装一些依赖包:

 apt-get install libprotobuf-dev
apt-get install libleveldb-dev
apt-get install libsnappy-dev
apt-get install libopencv-dev
apt-get install libhdf5-serial-dev
apt-get install protobuf-compiler
apt-get install libgflags-dev
apt-get install libgoogle-glog-dev
apt-get install liblmdb-dev
apt-get install libatlas-base-dev

1.6 安装完上面依赖之后(一般按照我这样操作下来是不会报错的,因为本人包括此次已经第三次安装了,都ok的,放心跟着操作就行了),用git clone指令拉取远程仓库GitHub上的caffe项目,首先安装git包,其次再拉取。拉取耗时稍微有点长(大概5、6分钟),拉取完之后键入ls命令查看当前目录,可以看到caffe文件目录,OK,200!

apt-get install git 、 git clone git://github.com/BVLC/caffe.git

1.7 cd 进入caffe目录,执行命令: cp Makefile.config.example Makefile.config 来备份Makefile.config.example文件,ls查看可以发现多了一个新文件Makefile.config。接下来,修改新文件Makefile.config中的配置,键入命令: gedit Makefile.config 或者 vim Makefile.config ,去掉CPU_ONLY前面的#号注释,使得CPU_ONLY := 1

  配置引用文件路径(主要是HDF5的路径问题),找到INCLUDE_DIRS和LIBRARY_DIRS,分别在其后面(空一空格)新增内容 /usr/include/hdf5/serial 和 /usr/lib/x86_64-linux-gnu/hdf5/serial ,然后按ctrl + S 保存并关掉该文件。

 # Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

1.8 依次执行命令进行编译: make all 、 make test 、 make runtest ,但是执行命令make all时出现如下错误?不要慌,解决方案是执行这条命令下载对应的依赖: apt-get install --no-install-recommends libboost-all-dev ,下载完之后记得再次执行 make all 命令,又是一个稍微漫长的等待过程......

继续执行 make test 命令,继续等待.....

经过漫长的等待,终于来到了编译的最后一步:跑测试。执行 make runtest 命令后,你将会看到很多绿色的RUN OK,没错,这波操作真让人感到舒服~ε=ε=ε=(~ ̄▽ ̄)~

当你看到PASSED 1162 tests则表示成功进行所有测试。注意:如果执行结果失败,则需要执行语句 make clean ,然后解决掉问题再重新编译。

六、编译python接口

1.1 caffe具有Python和C++接口,我们常用Python接口来编写代码,以下将展示如何编译Python接口。

1.2 Ubuntu16.04默认安装的是python2.7,没有pip指令包,所以需要先安装pip,根据提示键入命令: apt install python-pip ,安装完如下第2张图所示。

1.3 在caffe根目录下,有个python文件夹,文件夹里面有个requirements.txt文件,里面有需要的依赖库和版本信息,按照其安装即可。在安装前,需要先安装fortran编辑器(gfrotran),因为安装scipy库时需要它,执行命令: apt-get install gfortran 。前面可能已经下载并更新过了,所以这里的执行并不起作用~

cd 进入 python文件目录,这里先更新一下pip源,键入命令: pip install --upgrade pip

然后需要修改一下/usr/bin/pip文件,不然执行requirements.txt文件中下载python模块的命令时会出现错误,键入命令: gedit /usr/bin/pip 或者 vim /usr/bin/pip ,将文件中的 from pip import main 修改为 from pip._internal import main ,按ctrl + S 保存并关闭文件。接着执行命令: gedit requirements.txt 或者 vim requirements.txt 打开requirements.txt文件,将 python-dateutil>=1.4,< 修改为 python-dateutil ,也就是去掉要求下载的版本号,然后按ctrl + S保存并关闭文件。继续执行命令(注意当前路径下必须有requirements.txt文件): for req in $(cat requirements.txt); do pip install $req; done 其会依次下载requirements.txt文件中的每一个python模块。于是,又进入了漫长的等待过程......其中黄色内容只是提示Python 2.7将于2020年1月1日到期,不是报错,别慌!python2也快走到头了,且行且珍惜吧!目前是2019年9月23日,够学习caffe基础了233~

足足花了40分钟,校园网真是给力......滚动鼠标滑轮查看是否有出现红色报错,我这里是没有的!接下来,键入命令: pip install -r requirements.txt 验证是否安装成功,若安装成功的,都会显示Requirement already satisfied,反之会继续进行安装python模块。

1.4 将caffe根目录下的python文件所在路径加入到全局环境变量,键入命令: gedit ~/.bashrc 或者 vim ~/.bashrc 打开bashrc文件,在文件的最后面添加一条语句 export PYTHONPATH=/home/你的登录名/caffe/python:$PYTHONPATH 。注意:这里将caffe安装在/home/sam/路径下,前面的内容可以使用 pwd 指令查看当前路径,copy替换即可!保存并关闭文件,键入命令: source ~/.bashrc 文件设置立即生效!

1.5 最后一步:编译python接口。这里需要先修改一下配置文件,键入命令: gedit Makefile.config 或者 vim Makefile.config ,找到文件中的PYTHON_INCLUDE,将 /usr/lib/python2./dist-packages/numpy/core/include 修改为 /usr/local/lib/python2./dist-packages/numpy/core/include ,即添加/local,保存并关闭文件。然后执行命令: make pycaffe ,输出为 PROTOC (python) src/caffe/proto/caffe.proto ,则表示编译python接口成功。

1.6 验证python接口,进入python环境,引入caffe模块,如果没有报错则安装成功!使用 dir() 函数查看当前模块的属性列表,从图中可看到caffe模块被导入。至此,caffe安装成功!完结撒花!最后要记住:因为整个过程都是在root角色下执行的,即所有安装文件或python模块等的用户组都是root,而Ubuntu系统默认创建的用户例如sam不是和root同一个用户组,这样sam用户就可能没有权限执行一些文件,又是在自己的电脑上练习,故每次登录就su切换到root角色下使用python接口编码吧!

大家慢慢食用~

如果你安装成功了,希望点一下右下角的推荐

Ubuntu16.04安装Caffe最全最详细教程(CPU)的更多相关文章

  1. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

  2. ubuntu16.04 安装 caffe cuda 相关流程

    不多说了,经历了很多莫名其妙的错误最后终于安装好了,直接放安装脚本: #!/bin/bash #安装时要注意有些库可能安装失败以及安装caffe有和protobuf相关错误时可能需要重新对protob ...

  3. ubuntu16.04 安装caffe以及python接口

    http://blog.csdn.net/qq_25073253/article/details/72571714http://blog.csdn.net/greed7480/article/deta ...

  4. Ubuntu16.04安装Caffe

    一.安装ccmake ccmake和cmake的功能是一样的,但它很方便设置编译前的一些参数,安装只需从官网下载压缩包,解压,最后将解压得到的文件夹中的bin文件夹的路径加入PATH环境变量中即可. ...

  5. SVN服务器在Ubuntu16.04下搭建多版本库详细教程

    1  介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可 以很方面恢复到以前的版本,并可以查看数据 ...

  6. Ubuntu16.04安装QQ

    说明:一开始,我在Ubuntu 16.04下安装的QQ版本是Wineqq2013SP6-20140102-Longene,但后来发现这个版本QQ在linux下问题很多,比如不能用键盘输入密码,QQ表情 ...

  7. ubuntu16.04安装klee

    ubuntu16.04安装klee(基于llvm 3.8)教程 前言 查阅了很多资料,踩了不少的坑,总的来说,这个应该是比较完善的基于llvm3.8和ubuntu16.04的安装教程,至少我自己按照这 ...

  8. Ubuntu16.04安装Redis并配置

    Ubuntu16.04安装Redis并配置 2018年05月22日 10:40:35 Hello_刘 阅读数:29146   Ubuntu16.04安装Redis并配置 1):安装: 1:终端命令下载 ...

  9. Ubuntu16.04安装TensorFlow及Mnist训练

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com TensorFlow是Google开发的开源的深度学习框架,也是当前使用最广泛的深度学习框架. 一.安 ...

随机推荐

  1. 简单的选项卡制作(原生JS)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 【DM642学习笔记七】缓冲区管理BufferManagement

       (参考文档:The TMS320DM642 VideoPort Mini-Driver ——3.2 Buffer Management)    认识输入/输出视频数据的缓冲区管理,有利于对视频图 ...

  3. Spring BatchSqlUpdate.updateByNamedParam例子

    关键在于定义参数和sql语句,代码如下: int dstColCount=dstColNamesList.size(); String insSql="insert into "+ ...

  4. (大概是最全的解决方法)使用bandicam录制视频导入pr后音画不同步问题

    遇到这个问题大部分都是使用了VBR来录制视频导致的, 搜集了各种能够找到的方法,并没有每个尝试过 一 Handbrake转码 Audio out of sync AFTER importing 解决方 ...

  5. 前端(jQuery)(6)-- jQuery的扩展与noConflict

    1.jQuery的扩展 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  6. JQ效果 透明图片覆盖动画

    效果图呈上 先说思路 1,一个固定的框架,有两张图片,一张是狗狗的,一张是练习方式,想把做好的练习方式隐藏 2,效果上想要从下面滑动出来,所以透明框定位在下面 3,整理需要的东西,缓慢升起需要动画效果 ...

  7. day18 13.乐观锁介绍

    乐观锁是使用版本字段,悲观锁是使用数据库底层的锁机制.mysql的类型timestamp(时间戳)有一个特点:插入数据不用管我,我取系统当前默认值.timestamp插入时间会记录,修改时间也会记录. ...

  8. 大数据概念(4V)

  9. 洛谷P1006 NOIP提高组2008 传纸条

    P1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无 ...

  10. JavaScript实现无缝滚动 原理详细讲解

    先了解一下对象的几个的属性: innerHTML: 设置或获取位于对象起始和结束标签内的 HTML scrollHeight: 获取对象的滚动高度. scrollLeft: 设置或获取位于对象左边界和 ...