• 在Jetson Nano上安装Caffe


    1.简介

    本页面将指导您在具有CUDA和cuDNN支持的Jetson Nano上安装Caffe。我们只指导您完成基础知识,所以最终您可以构建自己的应用程序。有关Caffe的更多信息,请访问:https://caffe.berkeleyvision.org/。

    2.依赖

    Caffe框架对其他库有一些依赖关系。根据我们的指南,我们假设您已经在您的Jetson Nano上安装了OpenCV。如果没有,最好先做。

    $ sudo apt-get install cmake git unzip
    $ sudo apt-get install libgoogle-glog-dev libgflags-dev
    $ sudo apt-get install libprotobuf-dev libleveldb-dev liblmdb-dev
    $ sudo apt-get install libsnappy-dev libhdf5-serial-dev protobuf-compiler
    $ sudo apt-get install --no-install-recommends libboost-all-dev
    $ sudo apt-get install libatlas-base-dev libopenblas-dev
    $ sudo apt-get install the python3-dev python3-skimage
    $ sudo -H pip3 install pydot
    $ sudo apt-get install graphviz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.下载Caffe

    安装了所有必需的库之后,就可以下载Caffe了。

    在我们的GitHub页面上,你会发现著名的Caffe克隆自WeiLui89。与最初的Caffe不同,该版本支持SSD操作。WeiLui 是SSD探测器的最初开发者之一。有关详细信息,请参阅他的文章

    我们特别为OpenCV 4.4、cuDNN 8.0和Python3改编了他的fork。此外,我们还为树莓派、Jetson Nano和Ubuntu添加了一些额外的Makefile脚本。

    $ cd ~
    $ wget -O caffe.zip https://github.com/Qengineering/caffe/archive/ssd.zip
    $ unzip caffe.zip
    $ mv caffe-ssd caffe
    
    • 1
    • 2
    • 3
    • 4

    4.cuDNN8.0

    从8.0版本开始,NVIDIA已经放弃了对Caffe所依赖的一些cuDNN API调用的支持。

    编译生成cudnn_convolution_fwd_specificy_workspace_limit未在此作用域中声明

    cudnnGetConvolutionForwardAlgorithm, cudnnGetConvolutionBackwardDataAlgorithm可以被其他调用替换。

    然而,cudnnGetConvolutionBackwardFilterAlgorithm不再是一个合适的选择。

    这给你留下了三种选择。

    • 降级到cuDNN版本7.6,我们强烈建议不要这样做。它会导致其他依赖性问题的。
    • 编译没有cuDNN加速的Caffe。保存和CUDA仍然工作,一个不太坏的选择。
    • 在GitHub Caffe中使用修复。我们已经将cudnnGetConvolutionBackwardFilterAlgorithm的结果设置为一个常量。该程序在给定层拓扑的情况下寻找最快的cuDNN解。使用一般的CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0,您可能没有最佳的选择,但仍然是有效的。顺便说一下,该修复只适用于cuDNN发行版8.0。较老的cuDNN版本将使用原始代码编译。

    5.构建Caffe

    我们已经为Jetson Nano创建了一个配置文件。它应该没有错误。如果构建失败,请查看Caffe配置页面。

    $ cd ~/caffe
    # select the configuration
    $ cp Makefile.config.JetsonNano_example Makefile.config
    # start the build
    $ make clean
    $ make all -j4
    $ make test -j4
    $ make runtest -j4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    希望您将在make runtest之后看到下面的屏幕,表明一切都很顺利。整个测试需要5分钟以上才能完成。与树莓派4相比,它需要更多的时间。有两个原因。首先,在启用CUDA和cuDNN的情况下,将运行更多的测试,分别为2301和1266。其次,在一些测试中,CUDA加速将执行启发式搜索,以找到最快的算法,稍后将在测试中使用。测试在几毫秒内完成,而准备工作可能需要几秒钟。

    Caffe test output

    您可能还需要编译一些其他软件。首先是pycaffe。如果您想在Python 3中运行Caffe,您将需要这个接口。否则,Caffe只能从命令行或C++程序中运行。有关更多信息,请参阅原始的Caffe文档。

    你也可以在MATLAB中运行Caffe。这次你需要make matcaffe。但是在成功构建matcaffe之前,需要设置Makefile.config中的一些行配置。同样,原始文档是您的朋友。在pytest之后,你的屏幕看起来就像下图一样。

    # Assuming you're still in ~/caffe
    $ make pycaffe
    $ make pytest
    
    • 1
    • 2
    • 3

    Pytest output

    最后的说明时间到了,您的Caffe安装已经准备好在Jetson Nano上运行。

    您需要将Caffe添加到PYTHONPATH中。这可以在~/.bashrc~/.profile中完成。我们选择~/.bashrc。(打开文件,并在文件的最后添加一行export PYTHONPATH="$PYTHONPATH:$HOME/caffe/python"。像往常一样用Crtl+X, Y和Enter键保存并关闭。

    最后,您现在可以从任何位置导入Caffe,如截图所示。

    $ cd ~
    $ sudo nano ~/.bashrc
    # at the end of the file add the next line
    export PYTHONPATH="${PYTHONPATH}:$HOME/caffe/python"
    # save and close with
    Ctrl+X, Y, Enter
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    .bashrc

    Caffe Rdy

    参考目录

    https://qengineering.eu/install-caffe-on-jetson-nano.html

  • 相关阅读:
    如何在 Python 中实现遗传算法
    JavaScript【CSS操作、事件处理程序、DOM0级事件处理、DOM2级事件处理、事件类型之鼠标事件、事件流 、Event事件对象、事件类型之键盘、事件事件类型之表单】(十三)
    基于Python+tkinter实现一个简易计算器桌面软件
    C Primer Plus(6) 中文版 第6章 C控制语句:循环 6.7 逗号运算符
    国际服务贸易期末考试复习资料
    强化学习问题(五)--- ImportError: sys.meta_path is None, Python is likely shutting down
    使用frp+nginx内网穿透并配置https
    HTTP Mime-Type对照表
    06_es分布式搜索引擎2
    LQR 控制器
  • 原文地址:https://blog.csdn.net/weixin_43229348/article/details/127662847