在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

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

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

希望您将在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

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

.bashrc

Caffe Rdy

参考目录

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
告知:需要学习YOLOv4进行TT100K数据集上中国交通标志识别的学员请前往(1) Ubuntu系统《YOLOv4目标检测实战:中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/29362(2)《Windows版YOLOv4目标检测实战:中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/29363在无人驾驶中,交通标志识别是一项重要的任务。本课程中的项目以美国交通标志数据集LISA为训练对象,采用YOLOv3目标检测方法实现实时交通标志识别。具体项目过程包括包括:安装Darknet、下载LISA交通标志数据集、数据集格式转换、修改配置文件、训练LISA数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。YOLOv3基于深度学习,可以实时地进行端到端的目标检测,以速度快见长。本课程将手把手地教大家使用YOLOv3实现交通标志的多目标检测。本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入学习和探究。除本课程《YOLOv3目标检测实战:交通标志识别》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括:《YOLOv3目标检测实战:训练自己的数据集》《YOLOv3目标检测:原理与源码解析》《YOLOv3目标检测:网络模型改进方法》另一门课程《YOLOv3目标检测实战:训练自己的数据集》主要是介绍如何训练自己标注的数据集。而本课程的区别主要在于学习对已标注数据集的格式转换,即把LISA数据集从csv格式转换成YOLOv3所需要的PASCAL VOC格式和YOLO格式。本课程提供数据集格式转换的Python代码。请大家关注以上课程,并选择学习。下图是使用YOLOv3进行交通标志识别的测试结果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值