参照两位的博客

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. Json数组对象取值

    1.数据格式 {"data":[{"username":"xxx","avatar":"xxx",& ...

  2. Sql 标识列 增长1000

    Sql 标识列 增长1000 的解决办法: 1. Open "SQL Server Configuration Manager" 2. Click "SQL Server ...

  3. P3760 [TJOI2017]异或和

    题目描述 在加里敦中学的小明最近爱上了数学竞赛,很多数学竞赛的题都是与序列的连续和相关的.所以对于一个序列,求出它们所有的连续和来说,小明觉得十分的简单.但今天小明遇到了一个序列和的难题,这个题目不仅 ...

  4. hdu 6319 Problem A. Ascending Rating (2018 Multi-University Training Contest 3 A)

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=6319 思路: 单调队列倒着维护,队列里面剩下的值的数量就是这一段区间的count值,如样例第一个区间:3 ...

  5. CSS选择器,选择器的优先级

    CSS选择器 CSS基本语法 选择器 + 声明块 选择器 - 通过CSS选择器选中页面中的指定元素,下面会重点写. 声明块 - 选择器后面跟着的是声明块,使用{}括起来,由一个个声明组成,声明由名值对 ...

  6. OneProxy 管理

    -----client-----------haproxy---------mysql1----------mysql2------192.168.1.250 192.168.1.1 192.168. ...

  7. luogu1972 HH的项链(树状数组)

    无修改.询问区间种类数的问题可以很容易地用树状数组解决 我们先给询问按右端点排序,然后推着做,每次让a[i]++,表示i处新增了一个种类 但是这样会和前面的有重复,我们只要记下每个种类上次在哪里出现过 ...

  8. matplotlib imshow

    简单用法: imshow()函数格式为: matplotlib.pyplot.imshow(X, cmap=None) X: 要绘制的图像或数组. cmap: 颜色图谱(colormap), 默认绘制 ...

  9. Java8的Stream流(一) --- 基础用法

    Java8中的Stream Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象. Stream的特性及优点: 无存储. Stream不是一种数据 ...

  10. USACO Section 1.1

    这是4道大水题. 因为我看有些题解写的很丑陋,就把我的代码发上来. 第一题是我早期作品,丑陋不堪...... #include <cstdio> #include <iostream ...