深度学习相关的乱七八糟的东西的简介【jetson nano 的亚博智能的已配置镜像系统里的东西】

已安装:

CUDA10.2,CUDNNv8,tensorRT,opencv4.1.1,python2,python3,tensorflow2.3,

jetpack4.4.1,yolov4-tiny和yolov4,jetson-inference包(含资料中的训练模型),

jetson-gpio库,安装pytorch1.6和torchvesion0.7,安装node v15.0.1,npm7.0.3,

jupterlab,jetcham,已开启VNC服务,还有其他课程中所用到的模块。

CUDA

CUDA编程入门极简教程
看了安装教程才知道cuda是个什么东西
分点叙述各个知识
CUDA C/C++可以看作一个新的编程语言,因为NVIDIA配置了相应的编译器nvcc
CUDA拥有的统一的开发套件(CUDA Toolkit, NVIDIA GPU Computing SDK以及NSight等等)、非常丰富的库(cuFFT, cuBLAS, cuSPARSE, cuRAND, NPP, Thrust)以及NVCC(NVIDIA的CUDA编译器)所具备的PTX(一种SSA中间表示,为不同的NVIDIA GPU设备提供一套统一的静态ISA)代码生成、离线编译等更成熟的编译器特性让CUDA广受好评。

深度学习相关的乱七八糟的东西的简介【jetson nano 的亚博智能的已配置镜像系统里的东西】_第1张图片

CUDA是建立在NVIDIA的CPUs上的一个通用并行计算平台和编程模型,基于CUDA编程可以利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。近年来,GPU最成功的一个应用就是深度学习领域,基于GPU的并行计算已经成为训练深度学习模型的标配。
在CUDA中,host和device是两个重要的概念,我们用host指代CPU及其内存,而用device指代GPU及其内存。CUDA程序中既包含host程序,又包含device程序,它们分别在CPU和GPU上运行。同时,host与device之间可以进行通信,这样它们之间可以进行数据拷贝。典型的CUDA程序的执行流程如下:

  1. 分配host内存,并进行数据初始化;
  2. 分配device内存,并从host将数据拷贝到device上;
  3. 调用CUDA的核函数在device上完成指定的运算;
  4. 将device上的运算结果拷贝到host上;
  5. 释放device和host上分配的内存。

CUDNNv8 //v8是版本号

深度神经网络库 (cuDNN) 是基于CUDA的深度学习GPU加速库。cuDNN 可大幅优化标准例程(例如用于前向传播和反向传播的卷积层、池化层、归一化层和激活层)的实施。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。

tensorRT

  • 训练(training)包含了前向传播和后向传播两个阶段,针对的是训练集。训练时通过误差反向传播来不断修改网络权值(weights)。
  • 推理(inference)只包含前向传播一个阶段,针对的是除了训练集之外的新数据。可以是测试集,但不完全是,更多的是整个数据集之外的数据。其实就是针对新数据进行预测,预测时,速度是一个很重要的因素。

一般的深度学习项目,训练时为了加快速度,会使用多 GPU 分布式训练。但在部署推理时,为了降低成本,往往使用单个 GPU
机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如 caffe,TensorFlow
等。由于训练的网络模型可能会很大(比如,inception,resnet
等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如
squeezenet,mobilenet,shufflenet
等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。

而 TensorRT 则是对训练好的模型进行优化。 TensorRT 就只是推理优化器。当你的网络训练完之后,可以将训练模型文件直接丢进
TensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow 等)

可以认为 TensorRT 是一个只有前向传播的深度学习框架,这个框架可以将 Caffe,TensorFlow 的网络模型解析,然后与
TensorRT 中对应的层进行一一映射,把其他框架的模型统一全部转换到 TensorRT 中,然后在 TensorRT 中可以针对
NVIDIA 自家 GPU 实施优化策略,并进行部署加速。
TensorRT(1)-介绍-使用-安装

TensorRT是英伟达针对自家平台做的加速包,TensorRT主要做了这么两件事情,来提升模型的运行速度。

  1. TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT则在网络的推理时选用不这么高的精度,达到加速推断的目的。
  2. TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在了一起,针对GPU的特性做了优化。现在大多数深度学习框架是没有针对GPU做过性能优化的。一个深度学习模型,在没有优化的情况下,比如一个卷积层、一个偏置层和一个reload层,这三层是需要调用三次cuDNN对应的API,但实际上这三层的实现完全是可以合并到一起的,TensorRT会对一些可以合并网络进行合并。

TensorRT为什么能让模型跑快快

TensorFlow 2.3

任何曾经试图在 Python 中只利用 NumPy 编写神经网络代码的人都知道那是多么麻烦。编写一个简单的一层前馈网络的代码尚且需要 40
多行代码,当增加层数时,编写代码将会更加困难,执行时间也会更长。 开源深度学习库 TensorFlow
允许将深度神经网络的计算部署到任意数量的 CPU 或 GPU 的服务器、PC 或移动设备上,且只利用一个 TensorFlow
API。你可能会问,还有很多其他的深度学习库,如 Torch、Theano、Caffe 和 MxNet,那 TensorFlow
与其他深度学习库的区别在哪里呢?包括 TensorFlow 在内的大多数深度学习库能够自动求导、开源、支持多种
CPU/GPU、拥有预训练模型,并支持常用的NN架构,如递归神经网络(RNN)、卷积神经网络(CNN)和深度置信网络(DBN)。
TensorFlow 则还有更多的特点,如下:

  • 支持所有流行语言,如 Python、C++、Java、R和Go。
  • 可以在多种平台上工作,甚至是移动平台和分布式平台。
  • 它受到所有云服务(AWS、Google和Azure)的支持。
  • Keras——高级神经网络 API,已经与 TensorFlow 整合。
  • 与 Torch/Theano 比较,TensorFlow 拥有更好的计算图表可视化。
  • 允许模型部署到工业生产中,并且容易使用。
  • 有非常好的社区支持。
  • TensorFlow 不仅仅是一个软件库,它是一套包括 TensorFlow,TensorBoard 和 TensorServing 的软件。

c语言中文网的系列教程

TensorFlow 2 快速教程
TensorFlow2教程【这个免费且完整】
Tensorflow2.x(一)建立模型的三种方式
Tensorflow2.0实现29种深度强化学习算法大汇总
大佬在有理有据地抱怨tensorflow2不好用

jetpack4.4.1

  1. 它是一套组件库。(说明它是由许多个不同的组件库构成,并不是一个单一的组件库)

  2. 使用 Jetpack 可以帮助我们在不同的 Android 版本和不同的设备上,实现行为一致的工作代码。(说明 Jetpack 可以轻松的处理由 Android 版本不一致和设备不同产生的差异性和兼容性问题)

Jetpack 是什么

YOLOv4

YOLO是一种图像识别算法

人类视觉系统快速且精准,只需瞄一眼(You Only Look Once,YOLO)即可识别图像中物品及其位置。

传统目标检测系统采用deformable parts models
(DPM)方法,通过滑动框方法提出目标区域,然后采用分类器来实现识别。近期的R-CNN类方法采用region proposal
methods,首先生成潜在的bounding boxes,然后采用分类器识别这些bounding
boxes区域。最后通过post-processing来去除重复bounding
boxes来进行优化。这类方法流程复杂,存在速度慢和训练困难的问题。

本文中,我们将目标检测问题转换为直接从图像中提取bounding boxes和类别概率的单个回归问题,只需一眼(you only look once,YOLO)即可检测目标类别和位置。

YOLO采用单个卷积神经网络来预测多个bounding boxes和类别概率,如图1-1所示。本方法相对于传统方法有如下有优点:

一,非常快。YOLO预测流程简单,速度很快。我们的基础版在Titan X GPU上可以达到45帧/s;
快速版可以达到150帧/s。因此,YOLO可以实现实时检测。

二,YOLO采用全图信息来进行预测。与滑动窗口方法和region
proposal-based方法不同,YOLO在训练和预测过程中可以利用全图信息。Fast
R-CNN检测方法会错误的将背景中的斑块检测为目标,原因在于Fast R-CNN在检测中无法看到全局图像。相对于Fast
R-CNN,YOLO背景预测错误率低一半。

三,YOLO可以学习到目标的概括信息(generalizable
representation),具有一定普适性。我们采用自然图片训练YOLO,然后采用艺术图像来预测。YOLO比其它目标检测方法(DPM和R-CNN)准确率高很多。

YOLO的准确率没有最好的检测系统准确率高。YOLO可以快速识别图像中的目标,但是准确定位目标(特别是小目标)有点困难。
YOLO:实时快速目标检测

v1和v2是源头,v3很好地整合了,v4也只是稍加改进,v4-tiny加快速度牺牲精度【大概是这样】

yolo系列之yolo v3【写这个解析的是个很有趣又很强的人】

YOLO是“You Only Look
Once”的简称,它虽然不是最精确的算法,但在精确度和速度之间选择的折中,效果也是相当不错。YOLOv3借鉴了YOLOv1和YOLOv2,虽然没有太多的创新点,但在保持YOLO家族速度的优势的同时,提升了检测精度,尤其对于小物体的检测能力。
YOLOv3详解

YOLOv4 介绍及其模型优化方法

Jetson Inference

这个是官方推出的体验套件,它提供了三种最常见的AI应用于计算机视觉的类型,imagenet用于图像辨识 ( Image
Recognition )、detectNet用于对象辨识 ( Object Detection )、segNet用于语意分割。
NVIDIA Jetson Inference机器学习项目 -计算机视觉图片分类任务

笔记(八)Jetson Nano 跑通 jetson-inference

pytorch1.6

PyTorch 是一个 Torch7 团队开源的 Python 优先的深度学习框架,提供两个高级功能:

强大的 GPU 加速 Tensor 计算(类似 numpy)

构建基于 tape 的自动升级系统上的深度神经网络

你可以重用你喜欢的 python 包,如 numpy、scipy 和 Cython ,在需要时扩展 PyTorch。

在粒度级别上,PyTorch 是一个由以下组件组成的库:
深度学习相关的乱七八糟的东西的简介【jetson nano 的亚博智能的已配置镜像系统里的东西】_第2张图片

通常使用 PyTorch 是将其作为:

作为 numpy 的替代品,以使用强大的 GPU 能力;

一个深度学习研究平台,提供最大的灵活性和速度。 PyTorch
中文教程

浅谈Pytorch与Torch的关系

torchvision 0.7

torchvision包是服务于pytorch深度学习框架的,用来生成图片,视频数据集,和一些流行的模型类和预训练模型.
torchvision的理解和学习(翻译torchvision在pypi上的文档)

Node.js

Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!
node的官方教程

如果你是一个前端程序员,你不懂得像PHP、Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择。

Node.js 是运行在服务端的 JavaScript,如果你熟悉Javascript,那么你将会很容易的学会Node.js。

当然,如果你是后端程序员,想部署一些高性能的服务,那么学习Node.js也是一个非常好的选择。
菜鸟教程网站的教程

nmp7.0.3

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。 菜鸟教程

npm 是干什么的?(非教程)【是挺啰嗦的,看不懂上面引用的内容再看这个】
官方教程【全英文】

jupterlab

是个python的编译器,还能写文档看图片

JupyterLab作为一种基于web的集成开发环境,你可以使用它编写notebook、操作终端、编辑markdown文本、打开交互模式、查看csv文件及图片等功能。
JupyterLab,极其强大的下一代notebook!

jetcham

//估计是手滑写错了

PyCharm

PyCharm是一种Python IDE(Integrated Development
Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
【百度百科】

好吧 确实是错了 不过错的是。。。。。

jetcam

JetCam是用于NVIDIA Jetson的易于使用的Python相机界面。使用Jetson的Accelerated GStreamer插件可与各种USB和CSI摄像机配合使用。轻松读取图像作为numpy数组image = camera.read()。设置相机以running =True将回调附加到新框架。JetCam使在Python中创建AI项目的原型变得容易,尤其是在JetCard中安装的Jupyter Lab编程环境中。

接下来开始安装:

git clone https://github.com/NVIDIA-AI-IOT/jetcam

cd jetcam

sudo python3 setup.py install

详细的使用即函数可以到https://github.com/NVIDIA-AI-IOT/jetcam查看
亚博智能官网教程

你可能感兴趣的:(jetson,nano)