zoukankan      html  css  js  c++  java
  • Ubuntu14.04+caffe+CPU

           刚刚在上篇博客记录了windows10下GPU版本caffe的安装,正准备跑跑论文里的代码,发现好多命令都是.sh命令,这是linux系统的脚本文件。不能直接在windows下运行,于是我想把.sh转换为windows下可执行的bat文件,但是又发现代码需要将数据转换为leveldb格式。而leveldb不能直接在windows下编译,还需配置,比较繁琐。而lmdb可以直接在windows下编译。下面是两者区别:

    • 它们都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库。
    • 虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允许多种训练模型同时读取同一组数据集。
    • 因此lmdb取代了leveldb成为Caffe默认的数据集生成格式

          说了这么多,就是windows确实不方便,于是想搞一波linux。但是不太熟悉,所以没有搞双系统,先在虚拟机上练练手,尽管虚拟机不能用GPU。

    我的配置:VMware-workstation-full-12.00(12貌似更契合win10)、ubuntu-14.04-desktop-amd64(14LTS版本和16LTS版本相对稳定,amd64即64位版本)

    虚拟机和ubuntu安装比较简单,基本是傻瓜式安装。

    安装python接口的caffe:(无GPU)、无cuda(自然更没有cudnn),无opencv(暂不需要)

    1.安装必要的环境

    sudo apt-get update   #更新软件列表
    sudo apt-get upgrade #更新软件
    sudo apt-get install build-essentia #安装build essentialsl
    sudo apt-get install linux-headers-'uname -r' #安装最新版本的kernel headers

     

    2.安装所需要的依赖包

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler  
    sudo apt-get install --no-install-recommends libboost-all-dev  
    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev 
    sudo apt-get install libatlas-base-dev

     

    3.安装必要的库

    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev  
    sudo apt-get install libatlas-base-dev  

     

    4.下载caffe并配置python

    网上的大部分方法是:

    cd ~   
    git clone https://github.com/BVLC/caffe.git #克隆caffe到本地,并命名为caffe
    cd caffe
    cat python/requirements.txt | xargs -L 1 sudo pip install  安装caffe/python/requirements.txt里面所有要求的库

     我就被坑在这里了,上面的命令用到了pip。所以先装pip,即执行sudo apt-get install python-pip

     但是装好pip后,上面安装requirements.txt里的库时,速度很慢,基本都是timeout的错误,网上好多修改配置的教程,但我没有设置成功。。

     所以我采取下面的方法,即把requirements.txt里的库拿出来,挨个下载:

    sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage 
    python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython  

     上面就算caffe/python所有所需要的库。装好后没有报错即可,可以测试下:终端输入python,然后任意输入import scipy或import Cython都无错。

     

    5.配置并编译caffe

    修改Makefile.config.example

    cd caffe
    cp Makefile.config.example Makefile.config

     上面命令意思:将caffe文件夹里的Makefile.config.example 复制为Makefile.config

     然后进入Makefile.config文件夹,改些东西:

    #去掉CPU_ONLY:=1的注释
    #在PYTHON_INCLUDE下把
    #  /usr/lib/python2.7/dist-packages/numpy/core/include
    #改为
    #  /usr/local/lib/python2.7/dist-packages/numpy/core/include

    下面开始编译caffe:

    进入caffe文件夹根目录下,eg:~/caffe$ ,进行如下操作:

    make all
    
    make pycaffe
    
    make distribute
    
    make test

     这个运行比较久。

     

    6.修改环境路径

    将PYTHONPATH写入.bashrc中:

    echo 'export PYTHONPATH =$PYTHONPATH:/home/'username'/caffe/python'>>~/.bashrc
    source ~/.bashrc

    根据每个人不同的路径加以修改,例如我的是 'export PYTHONPATH=$PYTHONPATH:/home/lps/caffe/python'

     

    7.测试

     

    运行MNIST:

    1)按照官网先准备数据集:

    cd ~/caffe #将终端定位到Caffe根目录
    ./data/mnist/get_mnist.sh #下载MNIST数据库并解压缩
    ./examples/mnist/create_mnist.sh #将其转换成Lmdb数据库格式

    2)编辑lenet_solver的solver_mode模式从GPU改为CPU:

    vim ./examples/mnist/lenet_solver.prototxt
    #改为solver_mode: CPU

    3)训练模型

    cd $CAFFE_ROOT
    ./examples/mnist/train_lenet.sh

    4)训练结果

     

  • 相关阅读:
    PAT B1027 打印沙漏 (20 分)
    PAT B1025 反转链表 (25 分)
    PAT B1022 D进制的A+B (20 分)
    PAT B1018 锤子剪刀布 (20 分)
    PAT B1017 A除以B (20 分)
    PAT B1015 德才论 (25 分)
    PAT B1013 数素数 (20 分)
    PAT B1010 一元多项式求导 (25 分)
    HDU 1405 The Last Practice
    HDU 1165 Eddy's research II
  • 原文地址:https://www.cnblogs.com/king-lps/p/6575485.html
Copyright © 2011-2022 走看看