前记

由于是在一台用了很久的机器上安装caffe,过程比较复杂,网上说再干净的机器上装比较简单。如果能有干净的机器,就不用再过这么多坑了,希望大家好运!介绍这里就不说了,直接进入正题:

Caffe 主页  http://caffe.berkeleyvision.org/

github主页 https://github.com/BVLC/caffe

机器配置:

[root@cdh-nn-182 build]# lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.3 (Santiago)
Release: 6.3 gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) Python 2.7.10 

python已安装numpy,没有GPU

Prerequisites
  • CUDA is required for GPU mode.

    • library version 7.0 and the latest driver version are recommended, but 6.* is fine too
    • 5.5, and 5.0 are compatible but considered legacy
  • BLAS via ATLAS, MKL, or OpenBLAS.
  • Boost >= 1.55
  • OpenCV >= 2.4 including 3.0
  • protobufgloggflags
  • IO libraries hdf5leveldbsnappylmdb

Pycaffe and Matcaffe interfaces have their own natural needs.

  • For Python Caffe: Python 2.7 or Python 3.3+numpy (>= 1.7), boost-provided boost.python
  • For MATLAB Caffe: MATLAB with the mex compiler.

1.  安装各种依赖包

yum install -y gcc gcc-c++ gtk+-devel libjpeg-devel libtiff-devel jasper-devel libpng-devel zlib-devel cmake
yum install git gtk2-devel pkgconfig numpy python python-pip python-devel gstreamer-plugins-base-devel libv4l ffmpeg-devel mplayer mencoder flvtool2
yum install libdc1394 libdc1394-devel.x86_64
yum install gtk*

2. python包安装

下载Caffe源码,按照./caffe/caffe-master/python/requirements.txt 安装所需要的包,用pip安装比较方便,不行就自己下载手动安装,没什么问题。

3. 安装protobufgloggflags

先从比较简单的来:

4. 安装CUDA

从nvidia网站上下载最新的CUDA7.5,按自己的操作系统进行选择,这里选择下载cuda_7.5.18_linux.run,直接运行:

./cuda_6.5.14_linux_64.run

运行后会出现选择安装的项目,选择不安装驱动,否则会出错(driver installation is unable to locate the kernel source),也就是第一个选项No

5. 安装OpenBLAS

ATLAS, MKL, or OpenBLAS都可以安装,以前用过OpenBLAS,这次就还装他吧

下载OpenBLAS源码,安装也很简单,make && make install即可,更多请参考OpenBLAS编译和安装简介

6. 安装OpenCV

OpenCV装起来比较麻烦,中间遇到了很多问题,参考安装文档,也可以参考网上很多人给的 自动安装配置脚本,由于我安装时出了很多问题,所以基本是自己手动装的。

首先将自己的CMake升级到最新版本,yum默认装的默认不行,只能手动升级了,否则在CMake阶段就会出现各种警告什么的。

下载OpenCV-3.0.0

unzip opencv-3.0.0.zip
cd opencv-3.0.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. ##如果不出问题
make -j 32
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

下面说说我在make的时候碰到的问题:

Q1:已经安装了ffmpeg,出现错误AVCodecID未声明

cap_ffmpeg_impl.hpp:1556:83:错误:使用枚举‘AVCodecID’前没有给出声明

A1: 解决的方法是,添加make参数 -D WITH_FFMPEG=OFF,参考

Q2:出现parallel_for_pthreads undefined reference 错误,貌似是只有在CentOs中才会出现的

A2: 需要更改modules/core/src/parallel.cpp文件,参考1参考2,我这里只按照参考2给了parallel.cpp文件

Q3: 出现undefined reference to `jpeg_default_qtables'

../../../lib/libopencv_imgcodecs.so.3.0.0: undefined reference to `jpeg_default_qtables'

A3:安装,jpegsrc.v9a.tar.gz, 参考1参考2参考3

tar -xzvf jpegsrc.v9.tar.gz
cd jpeg-9
./configure
make libdir=/usr/lib64
make libdir=/usr/lib64 install

Q4:编译已完成,但是还是有问题:

[100%] Linking CXX shared library ../../lib/cv2.so
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpython2.7.a: could not read symbols: Bad value
collect2: ld 返回 1
make[2]: *** [lib/cv2.so] 错误 1
make[1]: *** [modules/python2/CMakeFiles/opencv_python2.dir/all] 错误 2
make: *** [all] 错误 2

A4:重新编译安装python,configure时添加--enable-shared,参考

./configure --enable-shared
make
make install

重新安装完以后可能会出现,执行python时error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory,解决方法是:

 vi /etc/ld.so.conf
#如果是非root权限帐号登录,使用 sudo vi /etc/ld.so.conf
#添加上python2.7的lib库地址,如我的/usr/local/Python2.7/lib,保存文件 /sbin/ldconfig

7. 安装Caffe

如果以上安装没有什么问题,这一不应该不会出错

unzip caffe-master.zip
cd caffe-master
cp Makefile.config.example Makefile.config vim Makefile.config
# 按照实际情况修改配置
CPU_ONLY := 1
BLAS := open make all

8. 运行MINIST例子

参考

cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh vim ./examples/mnist/lenet_solver.prototxt solver_mode: CPU
./examples/mnist/train_lenet.sh

就可以运行了

I0916 17:43:44.016604 63362 solver.cpp:571] Iteration 9900, lr = 0.00596843
I0916 17:44:05.355252 63362 solver.cpp:449] Snapshotting to binary proto file examples/mnist/lenet_iter_10000.caffemodel
I0916 17:44:05.371235 63362 solver.cpp:734] Snapshotting solver state to binary proto fileexamples/mnist/lenet_iter_10000.solverstate
I0916 17:44:05.464294 63362 solver.cpp:326] Iteration 10000, loss = 0.00184362
I0916 17:44:05.464337 63362 solver.cpp:346] Iteration 10000, Testing net (#0)
I0916 17:44:11.869861 63362 solver.cpp:414] Test net output #0: accuracy = 0.9907
I0916 17:44:11.869920 63362 solver.cpp:414] Test net output #1: loss = 0.0280591 (* 1 = 0.0280591 loss)
I0916 17:44:11.869931 63362 solver.cpp:331] Optimization Done.
I0916 17:44:11.869940 63362 caffe.cpp:214] Optimization Done.

CAFFE安装 CentOS无GPU的更多相关文章

  1. 【神经网络与深度学习】caffe+VS2013+Windows无GPU快速配置教程

    首先来一波地址: happynear大神的第三方caffe:http://blog.csdn.net/happynear/article/details/45372231 Neil Z大神的第三方ca ...

  2. caffe安装教程(Ubuntu14+GPU+pycaffe+anaconda2)

    caffe安装教程 本文所使用的底层环境配置:cuda8.cudnn6.OpenCV2.4.5.anaconda2(Python2.7).如使用其他版本的环境,如cuda,可安装自己的版本,但须在相应 ...

  3. win7旗舰版+caffe+vs2013+matlab2014b(无GPU版)

    参考网站: http://www.cnblogs.com/njust-ycc/p/5776286.html 无法找到gpu/mxGPUArray.h: No such file or director ...

  4. Windows下caffe安装详解(仅CPU)

    本文大多转载自 http://blog.csdn.net/guoyk1990/article/details/52909864,加入部分自己实战心得. 1.环境:windows 7\VS2013 2. ...

  5. 71 mac boook pro 无 gpu 下caffe 安装

    71 mac boook pro 无 gpu 下caffe 安装 1.首先安装homebrew工具,相当于Mac下的yum或apt ruby -e "$(curl -fsSL https:/ ...

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

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

  7. caffe在windows 下的配置及matlab接口编译(无GPU)

    本人机子windows 10,matlab2015a,vs2013(官网使用的是vs2013) 1.首先去github上下载caffe的windows包,地址:https://github.com/B ...

  8. 无图形界面安装CentOS

    有些插在ATCA中的x86刀片虽然是提供了Micro HDMI显示接口的,但是可能由于厂家出于节省成本的考量,没有给板卡配备显卡,那么在无图形界面下安装系统,就成为一个运维人员应知的一件事情.这里我们 ...

  9. 【Linux-CentOS】在无互联网-内网环境的Windows7主机上安装CentOS双系统,从安装到放弃

    2018.12.3 日更新:本文仅作为无互联网环境下安装的参考.更推荐在互联网环境下安装软件和使用系统,毕竟会自动安装依赖包,比较方便. 因个人办公电脑装的盗版Win7总是蓝屏,影响工作,加之看到 W ...

随机推荐

  1. HttpContext.Current.Cache 和 HttpRuntime.Cache 区别

    原文地址:http://blog.csdn.net/avon520/article/details/4872704 .NET中Cache有两种调用方式:HttpContext.Current.Cach ...

  2. ssh非交互式密码输入

    ssh登陆不能在命令行中指定密码.sshpass的出现,解决了这一问题.sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码. 它允许你用 -p 参数指定明文密码,然后直接登 ...

  3. 【Cocos2d-X开发学习笔记】第27期:游戏背景之贴图地图类(CCTileMapAtlas)的使用

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 一.贴图地图类CCTileMapAtlas 除了 ...

  4. 9个Java初始化和回收的面试题

    1.Java中是如何区分重载方法的? 通过重载方法的参数类型和顺序来进行区分的. 注意:若参数类型和顺序均相同时,不管参数名是否相同,编译器均会报错,提示方法已经被定义.且不能根据返回值类型来区分,如 ...

  5. java+ mysql 给所有的表添加假数据

    需求:别的项目, 代码扣过来了, 数据库也拿过来了, 但是数据库全是空表, 一共700 张表,需求是给表添加假数据,让它能运行起来. 一下是代码实现: 1.数据库连接: public static C ...

  6. 计算任意位数的Pi

    当用程序实现求pi的值时,也许你能够很快写出算法(利用求pi的几个公式),但是由于使用单变量保存结果,限于计算机硬件对变量的表示范围有限,因此,最多只能计算出pi值小数点后十多位.但需要得到一个更大位 ...

  7. Google开发规范

    v0.2 - Last updated November 8, 2013 源自 Google's C++ coding style rev. 3.274 目录 由 DocToc生成     头文件   ...

  8. Android真正意义上的无限轮播Banner

    在android开发的时候,经常会使用到轮播图,对于这种效果,一般情况下,我们都会使用一种叫做ViewPager的来实现. 传统的实现逻辑是自定义一个View继承ViewPager,在适配器中 将co ...

  9. 【IOS】 XML解析和xml转plist文件(GDataXML)

    iOS对于XML的解析有系统自带的SDK--NSXMLParser,鄙人愚拙,只会用GDataXML进行解析,这里仅介绍GData的使用.(以下图为例) 1.对于一个xml文件,先读取出来 NSDat ...

  10. 9.5noip模拟试题

    题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer.o ...