原文地址:http://blog.csdn.net/hjimce/article/details/48781693

作者:hjimce

对于caffe的系统一般使用linux系统,当然也有windows版本的caffe,不过如果你一开始使用了windows下面的caffe,后面学习的过程中,会经常遇到各种错误,网上下载的一些源码、模型也往往不能快速的跑起来,因为貌似caffe的官方只提供了linux版本,而且caffe在不断的快速迭代更新中,如果不使用原版的话,后面编译出现什么问题,自己怎么错的,自己都不知道。本篇博文主要讲解快速搭建caffe环境:

电脑系统:ubuntu 14.04

显卡:GTX 850

在ubuntu下要完整的搭建caffe,个人感觉最难的一步就是cuda的安装了,特别是对于双显卡的电脑来说,很容易黑屏、无法登陆图形界面,这个我安装了n久,都没装成功,因为我的电脑笔记本双显卡,每次装完cuda就黑屏,网上的教程一大堆,但都中看不中用,导致我重装了二三十次的系统,最后才成功。这里为了讲caffe的安装,我们先不使用GPU,进行安装测试,因为没有GPU我们依旧可以跑caffe,只是速度比较慢而已。

1、安装caffe所需要的依赖库

命令:

  1. sudo apt-get install libatlas-base-dev

  2. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

  3. sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

这些库要安装挺久的,请耐心等待。

2、下载caffe。

到github上下载caffe:https://github.com/BVLC/caffe。下载完成后,解压caffe源码包。解压后,我们打开文件,可以看到caffe的源码包如下:

3、配置Make.config 文件。caffe文件解压后,文件夹下面有一个Makefile.config.example文件,我们需要对这个文件进行重命名为:Make.config  。也就是去掉后缀example。然后我们打开这个文件,可以看到如下内容:

然后我们把:#CPU_ONLY:=1,那一行的注释符号去掉:CPU_ONLY:=1。这是因为我们没有安装CUDA,还不能使用gpu,所以我们把配置改为只使用cpu。

4、编译caffe。

方案一:

(1)在完成Make.config配置后,我们输入命令:

make all

进行caffe源码编译.这一步有可能遇到如下错误:

caffe/proto/caffe.pb.h: No such file or directory

如果出现这个错误,那么输入命令:

  1. protoc src/caffe/proto/caffe.proto --cpp_out=.

  2. mkdir include/caffe/proto

  3. mv src/caffe/proto/caffe.pb.h include/caffe/proto

然后在进行make all 就可以了

(2)编译完成后,在安装python接口,输入命令:

make pycaffe

这个如果不使用python接口,调用caffe模型的话也可以不用安装,不过建议还是搞一下,就一句话的事。完事后,我们会发现caffe源码目录下,多了一个build文件,这个文件下面有个tools,打开这个文件夹:

这个文件夹下面的工具可是个好东西啊,以后我们会经常用到这些可执行文件,最常用的就是可执行文件:caffe,我们只要调用这个工具,就可以进行训练。

(3)接着编译test文件夹下面的源码。命令如下:

  1. make test

  2. make runtest

采用这种方案一般没问题,不过我在使用c++调用的时候,会使用到链接库:libcaffe.so.1.0.0-rc3,这种方法编译后没有生成这个文件;经过google查找,发现采用cmake编译,才会生成libcaffe.so文件

方案二:直接采用cmake:

  1. mkdir build

  2. cd build

  3. cmake ..

  4. make all -j8

5、测试阶段

安装完了,自然要测试一下能不能用咯。首先cd到caffe目录,然后输入命令:

  1. sh data/mnist/get_mnist.sh

  2. sh examples/mnist/create_mnist.sh

  3. vim examples/mnist/lenet_solver.prototxt

把lenet_solver.prototxt里面的solver_mode 改为 CPU。因为我们还没装GPU,暂时只使用CPU就好了。

然后我们运行脚本:

./examples/mnist/train_lenet.sh

这个时候,如果成功的话,就会开始跑起来:

说明:如果在使用caffe、或者编译安装caffe过程中,出现如下错误:


  1. CXX/LD -o .build_release/tools/convert_imageset.bin

  2. .build_release/lib/libcaffe.so: undefined reference tocv::imread(cv::String const&, int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'

那么请修改上面的Makefile文件(不是Makefile.config):


  1. LIBRARIES += glog gflags protobuf leveldb snappy \

  2. lmdb boost_system hdf5_hl hdf5 m \

  3. opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

也就是在libraries后面,加上opencv的相关库文件。

接着就开始caffe搞起吧,推荐个caffe模型网站:https://github.com/BVLC/caffe/wiki/Model-Zoo。本来个人不是很喜欢caffe的,就是因为这个网站吸引了我,这个网站可以搞到好多caffe模型、源码,非常适合于我们学习。

二、在Eclipse中使用编译调试caffe

1、首先就是安装Eclipse,然后安装c++开发插件,这个可以百度搜一下,eclipse下面怎么进行c++开发。

2.导入caffe makefile工程到eclipse (由于是英文版,下面描述也用英文,省的翻译,方便大家调试)
(1)File→New→Project→C/C++ →Makefile Project with Existing Code.
(2)Create a new Makefile Project from existing code
Projectname: caffe-master
Existing code location:/home/user/caffe-workspace/caffe-master
Language: choose C and C++
Toolchain:choose Linux GCC
(3)Then click on caffe-master in Project Explorer (set Window→Open  Perspective → C/C++).

(4)Now go File → Properties → Run/Debug settings.Click  New.., and choose C/C++ application
(5)Fill launch configurationproperties
·        Arguments:
fill   train –solver=examples/mnist/lenet_solver.prototxt
and change working directory from default to /home/user/caffe-workspace/caffe-master(change to your own directory)

(6)Now you can use debug caffe code: Run-> Debug

三、C++函数调用相关路径,makefile


  1. CC=g++

  2. CXXFLAGS = -O2 -Wall -D__STDC_CONSTANT_MACROS

  3. INCLUDE = -I/usr/local/cuda/include -I. -I/usr/local/cuda/include -I/home/hjimce/caffe/include/ -I/home/hjimce/caffe/src/

  4. LIBRARY = -L/usr/local/x86_64-linux-gnu/ -lprotobuf \

  5. -L/usr/lib/x86_64-linux-gnu/ -lglog \

  6. -L/usr/local/cuda/lib64/ -lcudart -lcublas -lcurand \

  7. -L/usr/local/lib/ -lm -lpthread -lavutil -lavformat -lavcodec -lswscale -lopencv_core -lopencv_imgproc -lopencv_highgui \

  8. -L/usr/lib/python2.7/config-x86_64-linux-gnu/ -lpython2.7 \

  9. -L/sur/lib32/ -lrt \

  10. -L../../caffe/build/lib/ -lcaffe

  11. all:

  12. $(CC) $(INCLUDE) $(OBJS) testcpp.cpp -o exercise $(LIBRARY)

windows下的caffe环境搭建

最近在ubuntu搞了一个月的caffe,总感觉很不爽,因为ubuntn下面的c++集成开发工具,eclipse用起来没有vs爽,因为对caffe的函数名不是很熟悉,所以需要借助vs的c++助手。然后前一个月大部分也是调用pycaffe,但是最近感觉需要对caffe的c++函数比较熟悉,才能把自己的能力进一步提高,于是就开始搞起了windows 下的caffe,借助vs的强大功能,快速学习caffe。一开始采用vs2012,最后各种错误,最后改成vs2013很容易就编译成功了。

最后推荐一个windows下caffe安装网站:http://thirdeyesqueegee.com/deepdream/2015/07/13/running-deep-dream-on-windows-with-full-cuda-acceleration/    这个包含了python的集成开发环境anaconda,caffe的全套功能。

************作者:hjimce   时间:2015.10.10  联系QQ:1393852684  原创文章,转载请保留原文地址、作者等信息***************

附录:在使用pycaffe遇到如下错误


  1. raise ValueError('Mean shape incompatible with input shape.')

  2. ValueError: Mean shape incompatible with input shape.

那么把  ./python/caffe/io.py文件夹下面的代码:


  1. if ms != self.inputs[in_][1:]:

  2. raise ValueError('Mean shape incompatible with input shape.')

改成:


  1. if ms != self.inputs[in_][1:]:

  2. print(self.inputs[in_])

  3. in_shape = self.inputs[in_][1:]

  4. m_min, m_max = mean.min(), mean.max()

  5. normal_mean = (mean - m_min) / (m_max - m_min)

  6. mean = resize_image(normal_mean.transpose((1,2,0)),

  7. in_shape[1:]).transpose((2,0,1)) * \

  8. (m_max - m_min) + m_min

  9. #raise ValueError('Mean shape incompatible with input shape.')

ubuntu 系统下的Caffe环境搭建相关推荐

  1. ④ESP8266 开发学习笔记_By_GYC 【Ubuntu系统下ESP8266 开发环境搭建】

    目录 ④ESP8266 开发学习笔记_By_GYC [Ubuntu系统下ESP8266 开发环境搭建] 一.安装前准备 1.乐鑫官方的ESP-IDF 编程指南 2.ESP-IDF风格的ESP8266 ...

  2. linux环境下java开发_Linux Ubuntu系统下Java开发环境搭建

    软件151田杰中 2. 在合适的路径下创建文件夹用来存储Java JDK,本例选择在/opt目录下新建JVM子文件夹.操作如下 打开Terminal(后文成为T1),输入: cd /opt       ...

  3. Linux Ubuntu系统下Java开发环境搭建

    软件151田杰中 1. 前往ORACLE官网下载最新版本的Java JDK:http://www.oracle.com/technetwork/java/javase/downloads/index. ...

  4. linux下嵌入式编译环境搭建,ubuntu系统下嵌入式开发环境搭建(ubuntu 16.04)

    1.安装git sudo apt-get install git 2.安装vim sudo apt-get install vim 3.安装arm-linux-gcc (1) arm-linux-gc ...

  5. cc java开发环境搭建_Windows系统下java开发环境搭建

    总的来说,开发环境是程序员工作的基础,没了他,IT工作就没得开展了.话不多说,今天提供的教程是Windows系统下Java开发环境的搭建,具体如下 1.下载并安装JDK(JAVA Developmen ...

  6. Windows系统下的Python环境搭建

    -------在网上搜罗了许多Python环境搭建的方法,还是下面这一篇我觉得最详细,搬来作为参考---------- 转自https://zhuanlan.zhihu.com/p/111168324 ...

  7. linux系统下深度学习环境搭建和使用

    作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...

  8. Linux系统下Hadoop运行环境搭建

    1.安装ssh免密登录 命令:ssh-keygen overwrite(覆盖写入)输入y 一路回车 将生成的密钥发送到本机地址 ssh-copy-id localhost (若报错命令无法找到则需要安 ...

  9. ubuntu 9 下 LAMP开发环境搭建

    LAMP(Linux+Apache+Mysql+Perl/PHP/Python)是基于 Linux,Apache,MySQL和PHP的开放资源网 络开发平台,被喻为PHP开发的黄金组合. 1.Ubun ...

最新文章

  1. Mio C220破解问题
  2. 数字电路可控门电路原理(三态/同相/反相、缓冲/驱动电路)
  3. 重新上课,学习HTML的第一天
  4. “互联网+”未来发展
  5. 认证鉴权与API权限控制在微服务架构中的设计与实现
  6. 带你熟悉鸿蒙轻内核Kconfig使用指南
  7. 剑指offer总目录
  8. 如果A为假,则蕴含A-B恒为真
  9. .Net大型购物平台源码
  10. 【Android】使用deviceowner 配置手机设置 (Monkey自动化测试删去状态栏、设定输入法、静音、APP自动权限授予、Kiosk模式打开)
  11. 最新鸽哒IM即时通讯系统源码+带安装教程,正常运行版,无报错
  12. 怎样轻松旋转PDF文件
  13. 标准字头密码体制c语言,关于Playfair密码体制
  14. 可见光通信 调制解调技术 家庭机器人 可见光通信应用 原理及硬件方案
  15. 美国限制H1-B签证将导致科技岗位外流
  16. 玩转html5(一)-----盘点html5新增的那些酷酷的input类型和属性
  17. ctfshow摆烂杯
  18. [资料] [转载] 图形加速卡技术 [专业的基础技术文章]
  19. 【一起学UniGUI】--UniGUI的控件(Components)(9)
  20. 交通诱导信息发布系统服务器,基于TTS技术的交通语音诱导信息发布系统设计

热门文章

  1. UVA - 455 Periodic Strings【字符串】
  2. 2019/02/11-分布式数据库概述
  3. Centos 7初始化脚本
  4. Django 博客教程(三):创建应用和编写数据库模型
  5. 在C#中创建DataTable
  6. DevOps平台中的自动化部署框架设计
  7. Python模拟删除字符串两边的空白
  8. Virtual Network (1) - How to use it in a guest
  9. python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】...
  10. http中指定使用worker/prefork