caffe 2チュートリアル

5752 ワード

- ubuntu16.04 caffe 2をインストールする

  • インストールデマンドパッケージ
  • sudo apt-get update
    sudo apt-get install -y --no-install-recommends \
          build-essential \
          cmake \
          git \
          libgoogle-glog-dev \
          libprotobuf-dev \
          protobuf-compiler \
          python-dev \
          python-pip                          
    sudo pip install numpy protobuf
    
  • cuda(8.0をサポート)とcudnn(V 6をサポート)ツールをインストール--caffeを構成した場合は、このステップ1を無視することができます.cuda 8を取り付ける.0
  • sudo apt-get update && sudo apt-get install wget -y --no-install-recommends
    wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb"
    sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
    sudo apt-get update
    sudo apt-get install cuda
    

    2.cudnn-v 5を取り付ける.1(ここではV 5.1バージョンのcudnnで、V 6バージョンのcudnnをサポートしており、Nvidiaサイトでダウンロードできます)
    CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz"
    wget ${CUDNN_URL}
    sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
    rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig
    
  • インストール利用可能パッケージ
  • sudo apt-get install -y --no-install-recommends libgflags-dev
    
    sudo apt-get install -y --no-install-recommends \
          libgtest-dev \
          libiomp-dev \
          libleveldb-dev \
          liblmdb-dev \
          libopencv-dev \
          libopenmpi-dev \
          libsnappy-dev \
          openmpi-bin \
          openmpi-doc \
          python-pydot
    sudo pip install \
          flask \
          graphviz \
          hypothesis \
          jupyter \
          matplotlib \
          pydot python-nvd3 \
          pyyaml \
          requests \
          scikit-image \
          scipy \
          setuptools \
          tornado
    
  • clone caffe 2キット
  • git clone --recursive https://github.com/caffe2/caffe2.git
    cd caffe2
    make
    cd build
    sudo make install
    

    tips:インストールするときは必ずインストールアドバイスをインストールし、しばらくマルチスレッドを呼び出してインストールしないでください.そうしないと失敗します.
  • caffe 2ツールが正常にインストールされたかどうかをテストします(Successが正常に表示されます)
  • zhangbz@zhangbz:~/work/caffe2/build$ python -c 'from caffe2.python import core'
    zhangbz@zhangbz:~/work/caffe2/build$ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
    Success
    
  • gpuが動作するかどうかをテストする(OKが現れる)
  • zhangbz@zhangbz:~/work/caffe2/build$ python -m caffe2.python.operator_test.relu_op_test
    Traceback (most recent call last):
      File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
        "__main__", fname, loader, pkg_name)
      File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
        exec code in run_globals
      File "/home/zhangbz/work/caffe2/build/caffe2/python/operator_test/relu_op_test.py", line 7, in 
        from hypothesis import given
    ImportError: No module named hypothesis  ##  hypothesis  
    

    tips:hypothesisモジュールのインストール
    zhangbz@zhangbz:~/work/caffe2/build$ pip install hypothesis
    

    gpuが動作しているかどうかを再テストします.
    zhangbz@zhangbz:~/work/caffe2/build$ python -m caffe2.python.operator_test.relu_op_test
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, 
    X=array([[-0.95520395, -1.        , -0.14771317],[-0.56449473, -0.9356454 ,  0.76431829],[-0.32907826, -0.27779716, -0.66857189][-0.37795779, -0.57947767, -0.03350436]], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([ 0.        ,  0.83450586,  0.02696872,  0.        ], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'CUDNN')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([[[ 0.        ,  0.0290993 ],[ 0.02696681,  0.6186235 ],[-0.27140155,  0.65315956],[-0.39703232,  0.17461373]]], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([[ 0.        , -0.35016027]], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'CUDNN')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([ 0.,  0., -0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([ 0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([ 0.,  0.,  0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([ 0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([-0.83774924], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'')
    Trying example: test_relu(self=<__main__.testrelu testmethod="test_relu">, X=array([-0.        ,  0.78971076,  0.        ], dtype=float32), gc=, dc=[, device_type: 1], engine=u'CUDNN')
    .
    ----------------------------------------------------------------------
    Ran 1 test in 13.717s
    OK