参照两位的博客

http://caffe.berkeleyvision.org/    官网

http://blog.csdn.net/u013476464/article/details/38071075    caffe+ubunutu14.04 +cuda 6.5 安装指南

http://blog.csdn.net/bebelemon/article/details/25567239   ubuntu12.04下配置caffe

http://www.mintos.org/config/ubuntu-nvidia-prime.html(对于ubuntu14.04的话很重要)

error while loading shared libraries: xxx.so.x"错误的原因和解决办法

前前后后装了有20+遍系统,今天终于把caffe搞定了。推荐ubuntu12.04+cuda(5.0,5.5或6.0的版本)+mkl+opencv+caffe

显卡驱动可以不装,cuda的.run文件只安装toolkit和sample即可,程序以后只用cpu运行,且只能运行不含GPU的sample,配置文件会有一个CPU与GPU的选择

http://developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡

前提

执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于https://developer.nvidia.com/cuda-gpus,就没问题了 lspci | grep -i nvidia
ubnutu12.04下显示:
NVIDIA Corporation GF119M [GeForce 610M]
 gcc --version
没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,不然安装显卡驱动的时候会出现问题,不过Ubuntu 是默认有的,ubuntu系统推荐安装英文的。

(如果是新装的ubuntu,记得update后换源)
1,安装cuda
下载官方cuda-toolkit,https://developer.nvidia.com/cuda-downloads,
将下载的.run安装文件放到home/yjy/下,yjy是我的用户名。
Mouveau跟Nvidia模块冲突,所以要把Nouveau给禁用了
 sudo gedit /etc/modprobe.d/blacklist.conf

在blacklist.conf中添加黑名单内容:
blacklist lbm-nouveau  
blacklist nvidia-173  
blacklist nvidia-96  
blacklist nvidia-current  
blacklist nvidia-173-updates  
blacklist nvidia-96-updates  
alias nvidia nvidia_current_updates  
alias nouveau off  
alias lbm-nouveau off

之后进入文本模式TTY,CTRL+ALT+FN+F1,

(卸载已经安装过的驱动: sudo apt-get remove --purge nvidia*,重装的系统就不要执行这一步了,这个操作有可能会导致黑屏,进不了桌面系统。couldnot write bytes:Broken pipe有可能也是它引起的)
然后关闭Lightdm
    sudo stop lightdm

然后进入yjy文件夹下看一下安装文件的权限

yjy@yjy-ThinkPad:~$ ls
若显示的.run文件名为白色,则给其赋执行权限

sudo chmod +x cuda_6.0.37_linux_64.run
执行.run文件
    sudo ./cuda_6.0.37_linux_64.run
安装完成后,启动lightdm
    sudo start lightdm

有可能只有桌面,没有左侧的菜单栏,

这时再进文本模式重启即可 sudo reboot

安装过程中会提示Missing recommend library,则重新启动后必须要安装

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
cuda验证

cd /home/yjy/NVIDIA_CUDA-6.0_Samples
 make

运行编译好的文件,看看设备的基本信息
 cd /bin/x86_64/linux/release
 ./deviceQuery

2,MKL安装

MKL下载申请:https://registrationcenter.intel.com/RegCenter/NComForm.aspx?ProductID=1461&pass=yes,会发一个邮件给你下载链接,可以下载试用版本,放在HOME文件夹。(序列号NBJN-JH2S8X57)
    解压缩后,若没有权限的话,加执行权限(方法同cuda相同): 
    开始安装: 
    sudo ./install_GUI.sh

3,:MKL与CUDA的环境设置

直接在/etc/ld.so.conf.d文件夹中添加配置文件的,添加完之后直接输入即可完成lib的链接工作。

新建intel_mkl.conf,然后里面写上:
        /opt/intel/lib/intel64  
        /opt/intel/mkl/lib/intel64  
    新建cuda.conf,里面内容是:
        /usr/local/cuda/lib64  
        /lib

sudo ldconfig -v

4:OPENCV安装

首先先下载大神脚本https://github.com/jayrambhia/Install-OpenCV,继续放在HOME中。
    sudo ./dependencies.sh  
    由于习惯性使用2.4.8,所以进入2.4文件夹,然后执行对应的安装文件,然后就安装完成了。

sudo ./opencv2_4_8.sh

中间若出现http://sourceforge.net/projects/opencvlibrary 一直链接不上的话,就说明环境已经将该网站地址屏蔽掉了。

方案是拷贝一个已经安装好的把OpenCV-2.4.8.zip(我的是2.4.8)先放在你桌面上,然后执行下面操作  放到/home/yjy/Install-OpenCV-master/Ubuntu/2.4/OpenCV/ 中,

sudo mv /home/yjy/Desktop/OpenCV-2.4.8.zip  /home/yjy/Install-OpenCV-master/Ubuntu/2.4/OpenCV/

在2.4文件夹下新建aa.sh文件,首行写入cd OpenCV

在opencv2_4_8.sh 中找到echo "Installing OpenCV 2.4.8",从这一行到最后的全部内容拷贝到aa.sh中。接下来运行aa.sh即可完成安装。

sudo ./aa.sh

5:安装Google Logging Library (glog)

下载地址是https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz,然后将解压后的glog-0.3.3放于主目录文件夹:
        ./configure  
        sudo make  
        sudo make install  
   安装其他依赖项:一个都不能少

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

6、安装Caffe并测试,https://github.com/BVLC/caffe
 切换到Caffe的下载文件夹,然后执行:
    cp Makefile.config.example Makefile.config

修改新生成的Makefile.config文件,修改“BLAS := mkl”,

修改Makefile文件,将BLAS ?= atlas修改为BLAS ?= mkl,不然后面编译会报错(如下面红色字体部分)。

make all
    make test

make runtest

/usr/bin/g++ src/caffe/solver.cpp -pthread -fPIC -DNDEBUG -O2 -I/usr/local/include/python2.7 -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/local/include -Ibuild/src -I./src -I./include -I/usr/local/cuda/include -c -o build/src/caffe/solver.o
In file included from ./include/caffe/util/math_functions.hpp:12:0,
                 from src/caffe/solver.cpp:13:
./include/caffe/util/mkl_alternate.hpp:13:19: fatal error: cblas.h: No such file or directory
compilation terminated.

出错例子

7、使用MNIST数据集进行测试
Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/yjye/caffe-master。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
  数据预处理
具体操作如下:
  cd data/mnist
  ./get_mnist.sh

重建LDB文件,就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpg文件都要处理成这个格式

cd examples/mnist

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

./create_mnist.sh

将mnist数据集转化为leveldb文件,生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹

../../build/examples/mnist/convert_mnist_data.bin: error while loading shared libraries: libglog.so.0: cannot open shared object file: No such file or directory

  1. sudo su
  2. cat /etc/ld.so.conf
  3. echo "/usr/local/lib" >> /etc/ld.so.conf
  4. ldconfig

训练mnist
  cd examples/mnist

./train_lenet.sh

在运行最后一步时出错

yjy@ThinkPad:~/caffe-master/examples/mnist$ ./train_lenet.sh
../../build/tools/train_net.bin: error while loading shared libraries: libmkl_rt.so: cannot open shared object file: No such file or directory。

后来发现此文件在/opt/intel/mkl/lib/intel64/ 中,要将此路径加入共享文件库

参照http://blog.chinaunix.net/uid-26212859-id-3256667.html

# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/opt/intel/mkl/lib/intel64/" >> /etc/ld.so.conf
# ldconfig

即可。最终结果附图

新版的caffe要增加一些东西

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

ubuntu12.04下增加

  1. # glog
  2. wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
  3. tar zxvf glog-0.3.3.tar.gz
  4. cd glog-0.3.3
  5. ./configure
  6. make && make install
  7. # gflags
  8. wget https://github.com/schuhschuh/gflags/archive/master.zip
  9. unzip master.zip
  10. cd gflags-master
  11. mkdir build && cd build
  12. export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
  13. make && make install
  14. # lmdb
  15. git clone git://gitorious.org/mdb/mdb.git
  16. cd mdb/libraries/liblmdb
  17. make && make install

ubuntu14.04下增加

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

ubuntu12.04+cuda6.0+caffe(新版)的安装的更多相关文章

  1. ubuntu12.04+cuda6.0+opencv2.4.9

    更新了cuda之后,opencv的gpu模块又要重新编译了,这个地方有一个疑问,我对cuda6.0装了两次,第一次装好之后,没有配一个bumblebee,重装了cuda6.0之后,发现原来编译的ope ...

  2. Ubuntu12.04+OpenERP7.0安装笔记

    不经意的一次看到OpenERP这个开源ERP,就被其丰富的功能,简洁的画面,熟悉的语言所吸引.迫不及待的多方查询资料,自己架设一个测试环境来进行了解.以下为测试安装时候的步骤说明,以备查询,并供有需要 ...

  3. ubuntu-12.04.1-desktop-x64下JDK环境的安装与配置

    1.上oracle官网下载最新的JDK.在这里,我的系统是ubuntu-12.04.1-desktop-amd64,目前位置JDK的最新版本位7u9.jdk-for-linux有两种安装包,一种是rp ...

  4. ubuntu18.04+ cuda9.0+opencv3.1+caffe-ssd安装

    详细Ubuntu18.04,CUDA9.0,OpenCV3.1,Tensorflow完全配置指南 问题1:使用Cmake编译opencv源码 CMake Error: The following va ...

  5. ubuntu16.04+cuda8.0+caffe

    =========== 如果出现nvidia-smi failed to communicate with nvidia driver,循环登录情况,则: sudo apt-get remove -- ...

  6. ubuntu12.04下一个简单的conky安装

    这个conky用一些漂亮的圆圈来显示cpu,时钟,内存,交换空间,硬盘信息,网络及天气信息(不需要登陆任何网站噢).而且,提供多种色彩方案供选择,带发行版标记(fedora,mint,debian,o ...

  7. ubuntu12.04:Mysql数据库:手动安装

    首先到mysql的下载中心上下载最新的tar.gz包: 1.在浏览器中输入http://www.mysql.com/downloads/ 进入mysql的下载中心,在这里有使用mysql开发的一些工具 ...

  8. ubuntu12.04:Mysql数据库:自动安装

    打开终端,输入下面命令: 1 sudo apt-get install mysql-server 2 sudo apt-get install mysql-client 一旦安装完成,MySQL 服务 ...

  9. 在win7_64bit + ubuntu-12.04-desktop-amd64+VMware-workstation-full-10.0.1-1379776平台上安装ns-allinone-2.35

    step1.  ns-allinone-2.35的下载地址:http://www.isi.edu/nsnam/ns/ns-build.html#allinone step2.  在虚拟机中打开term ...

随机推荐

  1. BZOJ4785 ZJOI2017树状数组(概率+二维线段树)

    可以发现这个写挂的树状数组求的是后缀和.find(r)-find(l-1)在模2意义下实际上查询的是l-1~r-1的和,而本来要查询的是l~r的和.也就是说,若结果正确,则a[l-1]=a[r](mo ...

  2. es6箭头函数内部判断

    ES6闭包内部判断 需要判断i值和数组长度的关系,一旦大于i归0 未加入判断 setInterval((i => (() =>( this.$refs.danmu.render(ret.d ...

  3. Leetcode 217.存在重复元素 By Python

    给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出: true ...

  4. UVALive - 6439(思维题)

    题目链接:https://vjudge.net/contest/241341#problem/F 题目大意:给你一个字符串,你可以用任意单个字符代替其中的一个子串,使它形成一个回文串,要求形成的回文串 ...

  5. detectMultiScale 读取冲突的一个解决方法

    背景:用的是opencv的HOGDescriptor检测行人,实例化为hog:使用默认的行人检测器: hog.setSVMDetector(cv::HOGDescriptor::getDefaultP ...

  6. C#/.NET转Java学习笔记

    大学研究了三年的.Net,由于偶然的机会,拿到IBM的Java web实习offer,所以决定转行搞Java(综合了校招情况.发展前景和其他各种因素). 下面是我在学习Java web的一些学习笔记( ...

  7. http和https的作用与区别

    PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密.防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名.另外是加密,加密需要一个密钥交换算法, ...

  8. 初见mobX

    先看如下的代码 const {observable}= mobox; const {observer}=mobxReact; const {Component}=React; const appSta ...

  9. 目标检测网络之 R-FCN

    R-FCN 原理 R-FCN作者指出在图片分类网络中具有平移不变性(translation invariance),而目标在图片中的位置也并不影响分类结果;但是检测网络对目标的位置比较敏感.因此Fas ...

  10. 记录一次nginx的upstream的配置信息

    nginx的upstream的配置信息 upstream qq.xiaoyu.cn { server 192.168.1.139:80 max_fails=3 fail_timeout=30s; se ...