Wei.Studio's Blog

热爱技术,拥抱AI

在内核驱动程序的很多代码中,都能够看到类似sgdma的内容,sgdma全称为Scatter/Gather DMA(散列/收集 DMA),内核中抽象了scatterlist和sg table用来描述和管理这种需要做散列和收集的DMA缓冲区。在内核中设计scatterlist,主要出于两方面的原因,从硬件层面来说,目前很多DMA控制器都支持硬件的SG DMA模式,由开发人员在内存中构建一个链式的DMA缓冲区描述符(Buffer Descriptor, BD),DMA控制器根据这个链式BD进行一对多、多对一或者多对多的拷贝操作。例如Xilinx的AXI DMA IPCore,参考PG021文档中的介绍,该IP核的Block Diagram中就集成了Scatter/Gather逻辑电路

阅读全文 »

在上一篇文章中,已经对什么是TensorRT,使用TensorRT进行深度学习模型部署推理的完整流程进行了初步的介绍。本文将详细介绍TensorRT引擎的构建,包括tf2onnx的使用、trtexec命令行的使用和重要参数介绍、如何使用Python API进行TensorRT引擎构建等

阅读全文 »

TensorRT是本专栏中最重要的内容,绝大多数内容将围绕TensorRT来展开,本文对TensorRT进行一个基本的介绍,让不熟悉TensorRT的读者能够对TensorRT是什么,如何使用它有一个较为全面的认识

阅读全文 »

本文对TensorRT部署YOLOv5模型的整体环境配置及软件包进行介绍。实验环境主要从主机和JestonNano两方面进行介绍,在主机端完成模型训练并转换为onnx中间模型表示,在JestonNano进行onnx模型转换为TensorRT引擎、图片/视频加载、编解码处理、模型推理、后处理等工作

阅读全文 »

本系列对在Nvidia边缘计算平台进行深度学习模型部署进行一个全面的介绍,主要围绕TensorRT深度学习推理框架,以YOLOv5目标检测任务为例,以Jeston Nano为目标计算平台,对环境搭建、模型量化、模型推理、性能评估、后处理优化等细节进行详细说明,并给出C++和Python分别进行模型部署推理的代码实例

阅读全文 »

本文以自定义模型为例,对使用VitisAI进行模型量化部署的流程进行介绍

Workflow

  • 数据集为fashion_mnist

  • 使用Tensorflow2搭建一个简单分类网络并进行训练,导出模型文件

  • 使用VitsiAI docker中的vai_q_tensorflow2工具进行模型量化和校准,得到校准模型文件

  • 使用VitisAI docker中的vai_c_tensorflow2工具进行模型编译,生成能够部署在DPU上的模型文件

  • 编写模型推理程序(Python),并将推理程序、编译后的模型文件以及测试图片导入设备中,运行推理程序进行图片分类

阅读全文 »

Label Studio

在研究目标检测任务时,必定需要了解如何对自定义的数据集做标注,网络上提到最多的就是labelme,然而我觉得labelme并没有那么好用,这是由于标注这块目前还是挺乱的,一方面目标检测数据集的格式各不相同,例如VOC数据集使用的是xml格式的标注images+annotations,标注坐标为xmin、ymin、xmax、ymax,而YOLO又有自己的标注格式images+labels,

阅读全文 »
0%