• 在Jetson TX2上安装caffe和PyCaffe


    caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要。顺便说一句,下面的安装是支持python3的。

    先决条件

      在Jetson TX2上完成JetPack-3.1的安装。

      构建并安装OpenCV-3.4.0,并确保其在python3下正常工作。参考:在Jetson TX2上安装OpenCV(3.4.0)

    安装步骤

    安装依赖项

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev 
                           libhdf5-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 libopenblas-dev

    接下来,需要从github上获取caffe的源代码。配置Jetson TX2,实际上从Makefile.config.example中修改了以下内容

      设置 USE_CUDNN := 1

      设置 OPENCV_VERSION := 3

      在 CUDA_ARCH 中添加 compute_62(for TX2) 和 compute_53(for TX1)

      用 python3.5 代替python2.7

      在 PYTHON_LIBRARIES 中用 boost_python-py35 代替 boost_python3

      在 PYTHON_INCLUDE 中用 /usr/local/lib/python3.5/dist-packages/numpy/core/include 代替

              /usr/lib/python3.5/dist-packages/numpy/core/include

      设置 WITH_PYTHON_LAYER := 1

      在 INCLUDE_DIRS 添加 /usr/include/hdf5/serial

      在 LIBRARY_DIRS 添加 /usr/lib/aarch64-linux-gnu /usr/lib/aarch64-linux-gnu/hdf5/serial

    结果生成的Makefile.config,可以从这里下载

    cd ~
    git clone https://github.com/BVLC/caffe
    cd caffe
    cp Makefile.config.example Makefile.config

    将下载好的Makefile.config拷贝到caffe文件夹下。/home/nvidia/caffe 是我的caffe所在目录

    cp ~/Download/Makefile.config /home/nvidia/caffe

    为hdf5创建链接

    find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' ;
    cd /usr/lib/aarch64-linux-gnu
    sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
    sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
    cd /home/nvidia/caffe    // caffe所在目录
    make all -j4  //j4代表计算机cpu有4个核,因此可以多线程一起make,这样make的速度会快很多。TX2是4核的,我们就不要学别人用什么j8,j16了,乖乖地敲j4
    make test -j4
    make runtest -j4

    剩下的步骤是为了python3准备的。注意,我必须从源代码中安装 leveldb-0.20 才能使其正常工作

    为python3手动构建并安装 leveldb-0.20,因为默认版本0.194无法在Jetson TX2上编译

    mkdir -p ~/src
    cd ~/src
    wget https://pypi.python.org/packages/03/98/1521e7274cfbcc678e9640e242a62cbcd18743f9c5761179da165c940eac/leveldb-0.20.tar.gz
    tar xzvf leveldb-0.20.tar.gz
    cd leveldb-0.20
    python3 setup.py build
    sudo python3 setup.py install

    接下来需要安装 ~/caffe/python/requirements.txt 里面的一些工具包

    pkgs=`sed 's/[>=<].*$//' ~/caffe/python/requirements.txt`
    for pkg in $pkgs; do sudo pip3 install $pkg; done
    ### build pycaffe
    cd ~/caffe
    make pycaffe
    make distribute

    在 ~/.bashrc 中添加下列行

    export PYTHONPATH=/home/nvidia/caffe/python:$PYTHONPATH

    验证安装是否成功

    python3
    >>> import numpy as np
    >>> import caffe

    此外,我还对caffe在Jetson TX2上的性能进行了基准测试。使用nvpmodel和~/ Jetson -clock .sh将Jetson TX2设置为最大性能模式。连接

    cd ~/caffe
    ./build/tools/caffe time --gpu 0 --model ./models/bvlc_alexnet/deploy.prototxt

    参考文章:How to Install Caffe and PyCaffe on Jetson TX2

    参考文章:初学JetsonTX2之安装CAFFE

  • 相关阅读:
    linux c 正则表达式
    【编译原理】1. 宏观结构
    编译原理
    知我所未知,方行我所未至
    接口返回值中的状态值设置
    Quotes in shell(bash, csh)
    Blog 081018
    58同城职位分类数据 json
    ckeditor小记
    三大WEB服务器对比分析(apache ,lighttpd,nginx)
  • 原文地址:https://www.cnblogs.com/gezhuangzhuang/p/11624818.html
Copyright © 2020-2023  润新知