由于虚拟机下的Ubuntu系统一般不包含GPU,故这次安装时为了在无GUP环境下运行caffe。所以只需安装CPU版本的caffe

由于本机是window10系统,所以想尝试caffe就在自己电脑上整了一个虚拟机(详情可见:win10系统搭建虚拟机:VMware
Workstation Player 12环境+Ubuntu Kylin 16.04 LTS系统
),然后昨天在自己虚拟机上配置了一个caffe环境。

其中,只是尝试着搭建了一个CPU版本的caffe,Ubuntu16.04中自带了python
2.7。

在安装的过程中,真的会出现各种各样的报错,但是...

感慨天朝的实力... 每一个bug都能搜索到如何解,所以...  不要担心,百度、谷歌一起教你装caffe。

——————————————————————————————————————————————

本篇内容为两个:caffe安装流程+报错举例

一、caffe安装流程:安装依赖、配置python、配置caffe、配置caffe的makefile文件、配置python caffe

二、报错举例:linux系统的报错问题、caffe报错问题、python报错问题、虚拟机问题

—————————————————————————————————

一、caffe安装流程

caffe安装流程:安装依赖、配置python、配置caffe、配置caffe的makefile文件、配置python
caffe

1、安装依赖

安装依赖项,这个是根据caffe官网的要求配的,打开caffe官网,在说明里有installing
···for···ubuntu
,里面有装caffe的步骤

[python] view
plain
 copy

  1. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
  2. sudo apt-get install --no-install-recommends libboost-all-dev
  3. sudo apt-get install libatlas-base-dev
  4. sudo apt-get install libhdf5-serial-dev

2、配置python

一般linux都自带python,看看python版本:python2.7 --version

之后还要执行:

[python] view
plain
 copy

  1. sudo apt-get install python-dev

加载之后:

[python] view
plain
 copy

  1. sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

以上所有sudo apt-get在什么文件夹下输入都无所谓

3、配置caffe

把CAFFE的源代码下载下来:

[html] view
plain
 copy

  1. git clone https://github.com/BVLC/caffe.git

如果没有git,还需要安装git:

[html] view
plain
 copy

  1. apt-get install git

下载完成之后,进入caffe文件夹, 进入里面的python文件夹,然后输入

[html] view
plain
 copy

  1. for req in $(cat requirements.txt); do pip install $req; done

如何寻找到linux的caffe的路径呢?

貌似直接cd caffe/python一般就能够直接转给去

pip没有安装,还需要安装pip或者easy_install(先修改环境,再sudo):

修改python的环境变量:export PATH="$PATH:/usr/local/bin/ python

[html] view
plain
 copy

  1. sudo apt install python-pip

更新pip:pip install -U pip

4、配置caffe的makefile文件

      到CAFFE文件夹, 使用模板写个Makefile.config
[html] view
plain
 copy

  1. cp Makefile.config.example Makefile.config
      -因为CPU MODE, 所以在CPU_ONLY := 1前面的#要去掉.
      -两个路径要改成这样:(添加后面的两个hdf5的路径, 否则编译时报hdf5错误)
[html] view
plain
 copy

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

 (注意:/usr之前有一个“空格”,而且这个是在makefile中进行修改)


{
打开并修改配置文件:
sudo gedit Makefile.config #打开Makefile.config文件
根据个人情况修改文件:
a.若使用cudnn,则
#USE_CUDNN := 1
修改成: 
USE_CUDNN := 1
b.若使用的opencv版本是3的,则
#OPENCV_VERSION := 3 
修改为: 
OPENCV_VERSION := 3
c.若要使用python来编写layer,则
#WITH_PYTHON_LAYER := 1 
修改为 
WITH_PYTHON_LAYER := 1
d.重要的一项 :
将# Whatever else you find you need goes here.下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 
修改为: 
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 /usr/lib/x86_64-linux-gnu/hdf5/serial       
这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.
此处转自:  https://www.cnblogs.com/longmao-yiran/p/6832374.html
}

设置好文档名称之后,就要设置make:

[html] view
plain
 copy

  1. make pycaffe
  2. make all
  3. make test
  4. make runtest

 这个make默认是用CPU单核运算,如果想要快一点,
比如我想使用四核, 在make后面加上-j4标签.

 如果上面4行某一行报错之后想要重试,建议先make clean再重新开始.

出现的问题:不能修改文件内容,那么可以用:

[html] view
plain
 copy

  1. sudo gedit Makefile.config

报错:

[html] view
plain
 copy

  1. make: *** No rule to make target 'pycaffe'.  Stop.

需要make clean一下,才能再次make all ,同时cd随便哪个目录都行

5、配置python
caffe

 make之后,需要设置一下环境变量:

[html] view
plain
 copy

  1. export PYTHONPATH=/caffe/python:$PYTHONPATH

 去到CAFFE文件夹里面的python文件夹, 把当前路径记录下来(pwd).注意是cd caffe里面python文件夹下,才行,不然直接调用会报错

 接下来就可以打开python,然后:

[html] view
plain
 copy

  1. import caffe

 import之后如果没报错,就是完全安装好了。

MNIST数据集测试
配置caffe完成后,我们可以利用MNIST数据集对caffe进行测试,过程如下:
 
1.将终端定位到Caffe根目录
cd ~/caffe
 
2.下载MNIST数据库并解压缩
./data/mnist/get_mnist.sh
 
3.将其转换成Lmdb数据库格式
./examples/mnist/create_mnist.sh
 
4.训练网络
./examples/mnist/train_lenet.sh
训练的时候可以看到损失与精度数值,如下图:
图7.MNIST数据集训练
可以看到最终训练精度是0.9914。

 当然,报错无数...本节主要内容可参考博客:Ubuntu
16.04上安装Caffe(CPU only)

—————————————————————————————————

二、报错举例

报错举例:linux系统的报错问题、caffe报错问题、python报错问题、虚拟机问题

1、linux系统的报错问题

  (1)报错:E: Unable to locate package lib

解决:apt-get update

(2)报错: 无法获得锁 /var/lib/apt/lists/lock - open (11 资源临时不可用)

一般都是有其他apt在使用,需要吊销:

[html] view
plain
 copy

  1. 1、找出apt-get进程(下载进程)
  2. 一般ubu里面都会出现的吧,因为刚刚开始系统,系统后台都会默认帮你预装什么东西
  3. 查找进程代码:
  4. ps -df | grep apt
  5. 然后kill:
  6. kill -9 2542 2543(
  7. 报错:bash: kill: (2542) - Operation not permitted
  8. bash: kill: (2543) - Operation not permitted
  9. sudo kill -9 2542 2543

参考链接:http://www.linuxidc.com/Linux/2014-06/103437.htm

(3)不知道apt-get之后的安装包位置?

apt-get安装之后,一般会在     /var/cache/apt/archives文件夹之内

当然,如果sudo apt install之后,以及安装过的,就不会再次安装的。

参考:http://blog.csdn.net/u013797029/article/details/44492677

2、caffe报错问题

(1)报错:error:"make all" "make test"

[html] view
plain
 copy

  1. Error: 'make all' 'make test'
  2. .build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)'
  3. .build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'

原因:caffe代码中并没有build文件夹,需要新建build文件夹之后再进行编译:

[html] view
plain
 copy

  1. cd caffe-master  #打开caffe所在文件夹
  2. cp Makefile.config.example Makefile.config  #change setting in Makefile.config
  3. make all -j8  #在build文件夹下进行编译
  4. make test -j8
  5. make runtest -j8  #使用CPU多核同时进行编译

3、python报错问题

(1)pycaffe时报错:fatal error: numpy/arrayobject.h: No such
file or directory

其实numpy已经是安装的,anaconda2里面有,Python中import
numpy也没有问题,但就是在此处报错,解决方法:

[html] view
plain
 copy

  1. sudo apt-get install python-numpy

参考:http://blog.csdn.net/wuzuyu365/article/details/52430657

 (2)ImportError:
No module named google.protobuf.internal

再加载一次。

[html] view
plain
 copy

  1. sudo pip install protobuf

(3)Matplotlib is building the font cache using fc-list. This may take a moment

再次调用import caffe时候,出现的问题

      需要设置一下路径export PYTHONPATH=/caffe/python:$PYTHONPATH  ,在这之前,很重要的是要去到caffe下的python文件夹下。

4、虚拟机问题

(1)虚拟机的显卡是跟着本机的吗?

[html] view
plain
 copy

  1. lspci |grep VGA
  2. 00:0f.0 VGA compatible controller: VMware SVGA II Adapter

因为我是在VMware中运行的,所以显卡貌似是VMware SVGA II,好像跑不了GPU...

(2)一些文件夹无法获得root权限

笔者在使用的时候会出现只有通过命令先root,才能修改一些文件夹,进行复制和粘贴。

但是不能在界面中直接操作的问题?

这一问题的答案见博客:ubuntu
16.04 启用root用户方法

可以很好地解决root问题,就是重新再成立一个root账号,这样你就可以直接拥有root界面啦。

(3)VMware
Player cannot connect to the virtual machine

用管理员身份运行即可.

针对这一问题,官网给出的解答是两个原因:

1、VMware授权服务没有运行,解决办法参考见blog:http://www.2cto.com/os/201111/112418.html

2、服务不具有管理员权限,用管理员身份运行

——————————————————————————————

延伸一:使用安装VMware Tools工具进行文件共享

跟虚拟机进行文件共享需要下载一下VMware Tools,那么步骤为:

1、点击安装vmware tools

我的机器是“重新安装”

2、光驱vmware tools

点开之后,由于是不能在这个里面进行操作的,所以需要复制到机器

[html] view
plain
 copy

  1. cp /media/user/VMware\ Tools/VMwareTools-10.0.10-4301679.tar.gz /

然后进行解压:

[html] view
plain
 copy

  1. tar -zxvf VMwareTools-10.0.10-4301679.tar.gz

解压完成后进入解压文件夹vmware-tools-distrib

[html] view
plain
 copy

  1. cd vmware-tools-distrib

运行安装程序:

[html] view
plain
 copy

  1. ./vmware-install.pl

一路y加回车

3、设置共享文件夹

在虚拟机->设置,添加自己的共享文件夹

然后就完成了,你就可以在路径:

[html] view
plain
 copy

  1. cd /mnt/hgfs

看到自己的共享文件夹了。

转自:

http://blog.csdn.net/sinat_26917383/article/details/53502719

https://www.cnblogs.com/longmao-yiran/p/6832374.html


[置顶] caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记的更多相关文章

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

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

  2. ubuntu16.04下opencv安装笔记和例程

    问题: 最近重装了系统,需要重新配置opencv2.4.13,配置完成后每次都出现cmake error,google了报错,尝试了各种方法,都未解决问题,于是重新git clone 了opencv2 ...

  3. 虚拟机Ubuntu16.04无法进入图形界面 The system is running in low-graphics mode

    安装的虚拟机Ubuntu16.04 64位本可以正常使用,在安装了许多软件包(caffe)后不知哪里配置出现问题,出现The system is running in low-graphics mod ...

  4. 虚拟机Ubuntu16.04 The system is running in low-graphics mode解决方法!!

    虚拟机Ubuntu16.04无法进入图形界面 The system is running in low-graphics mode 安装的虚拟机Ubuntu16.04 64位本可以正常使用,在安装了许 ...

  5. Ubuntu16.04+Tensorlow+caffe+opencv3.1+theano部署

    1.首先安装Ubuntu16.04系统. 2.安装显卡驱动 在官网上下载最新的NVIDIA-Linux-x86_64-375.26.run驱动.然后 Ctrl+Alt+F1进入控制台,输入 sudo ...

  6. 在Ubuntu16.04.4上安装docker

    在Ubuntu16.04.4上安装docker 一.环境准备     首先我们需要一台Ubuntu16.04 虚拟机或者真机,其次,我们对其进行环境配置.       1.1.移除已经安装过的dock ...

  7. Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)

    Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...

  8. 在Ubuntu16.04.4上安装jdk

    在Ubuntu16.04.4上安装jdk 一.安装步骤     1.下载jdk安装包     首先我们在oracle官网上下载jdk-8u161-linux-x64.tar.gz,当然也可以下载其他版 ...

  9. Ubuntu16.04 下如何安装搜狗拼音输入法【亲测有效】

    Ubuntu16.04 下如何安装搜狗拼音输入法[亲测有效]   一.添加fcitx键盘输入法系统[系统默认是iBus] 1.将下载源添加至系统源: sudo add-apt-repository p ...

随机推荐

  1. 解决ssh localhost中root@localhost:要求输入密码问题(已经进行了无密码设置登录)

    首先删除~/.ssh目录下的3个文件,如下 id_rsa authorized_keys id_rsa.pub 然后 exit # 退出刚才的 ssh localhostcd ~/.ssh/ # 若没 ...

  2. spring security 控制用户信息用户加密 缓存用户信息

    1. MD5加密 任何一个正式的企业应用中,都不会在数据库中使用明文来保存密码的,我们在之前的章节中都是为了方便起见没有对数据库中的用户密码进行加密,这在实际应用中是极为幼稚的做法.可以想象一下,只要 ...

  3. ExtJS笔记 Ext.data.Model

    A Model represents some object that your application manages. For example, one might define a Model ...

  4. 用dom操作替代正则表达式

    在B/S结构客户端越来越“胖”的今天,作为一名全端程序员,您很可能会在前端操作html字符串,注意,是操作html字符串,不是操作当前页面的html. 举个例子,百度推出的在线HTML富文本编辑器Ue ...

  5. MySQL事务机制

    事务机制的特性通常被概括为"ACID原则" A(Atomic) 原子性: 构成一个事务的所有语句应该是一个独立的逻辑单元,要么全部执行成功, 要么一个都不成功, 你不能只执行他们当 ...

  6. VsCode删除多行操作

    1.下图是我们的文件 我想要一次性删除"how to delete this line" 所在的所有行,而其他行不删除 操作步骤 鼠标移动到 "how"上面,单 ...

  7. Python网络编程之socket编程

    什么是Socket? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...

  8. C语言第十讲,枚举类型简单说明

    C语言第十讲,枚举类型简单说明 一丶C语言中的枚举类型(ENUM) 在我们实际工作中,或者编写代码中.我们有的时候会用固定的值.而且不是很多. 这个时候就可以使用枚举了.如果我们使用#define显然 ...

  9. 手把手教你实现自己的abp代码生成器

    代码生成器的原理无非就是得到字段相关信息(字段名,字段类型,字段注释等),然后根据模板,其实就是字符串的拼接与替换生成相应代码. 所以第一步我们需要解决如何得到字段的相关信息,有两种方式 通过反射获得 ...

  10. 用stringr包处理字符串

    <Machine Learning for Hackers>一书的合著者John Myles White近日接受了一个访谈.在访谈中他提到了自己在R中常用的几个扩展包,其中包括用ggplo ...