摘要:
近几日完成ResNet相关实现engine方法,但仅仅基于基于简单分类网络实现转换,且基于Tensorrt C++ API 构建YLOV5实现engine转换相关资料较多,然调用ONNX解析转换engine相关资料较少,因此本文将介绍如何使用onnx构建engine,并推理。 版本:tensorrt 阅读全文
摘要:
近日很想验证使用pytorch训练模型转tensorrt各种关系,更深理解基于C++ API接口engine加速理论(Python API接口稍微简单,将不在验证),本文基于ResNet分类网络,收获如下:
收获一:通过C++ API,使用wts方法构建网络网络验证;
收获二:通过C++ API,使用onnx中间结构解析构建构建网络网络验证;
收获三:通过Python、torch,构建分类网络及转wts和onnx方法;
收获四:同时使用windows平台与Linux平台编译验证;
收获五:不同情况下的性能比较;
收获六:Linux编译并运行
结论如下:
结论一:同一个硬件,python转engine引擎,可使用C++ API调用引擎,然测试时间增加;
结论二:若有engine引擎,可只需简单调用反序列化和cotext等操作,无需构建网络或获得引擎的代码依赖;
结论三:onnx和wts转engine推理时间相当(仅此验证),也或许网络过于简单而未表现准确,但肯定wts构建性能最好; 阅读全文
摘要:
因其工作需要使用C++读取rtsp流,本文将针对linux下c++版读取视频流保存视频,凌乱且各种错误。现将将其成功执行的流程和代码记录,顺带也写了一份python读取rtsp方法,供自己使用及有需之人参考。本文分三部分,第一部分呈现CMakeLists.txt与rtsp_video源码;第二部分插 阅读全文
摘要:
本文主要介绍基于RV1109与RV1126板子编译opencv,并在其运行方法,若编译其它算法,基本也遵循该方法。 为此,我将记录详细过程供读者参考: 一.交叉编译 我们在 x86 平台上,编写程序并编译成可执行程序。这种方式下,我们使用 x86 平台上的工具,开发针对 x86 平台本身的可执行程序 阅读全文
摘要:
nvidia-docker安装方法(add:2022_1013): 复制粘贴即可: distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgk 阅读全文
摘要:
前几天博客根据基于pytorch编写了的网络,将其搭建转为wts,使用C++API搭建tensorrt的框架(查看博客点击这里),然自己写C++API搭建网络会比较费时,为此本篇博客基于同一个网络,将其转换为onnx格式,并使用python调用onnx模型,不断尝试如何使用参数,如搭建输入动态变量或 阅读全文
摘要:
好久没写一篇关于使用C++ API搭建构建Tensorrt的文章了,而本篇文章该说些什么了,也不想像很多博客介绍Tensorrt的C++API,直接来几个步骤,然后如何搭建网络,构造engine,需要前提logger等。 为此,本篇博客为了减少下载什么pth,根据什么onnx等不必要麻烦,我们将从t 阅读全文
摘要:
若使用tensorrt加载wts格式,需将模型训练的pt、pth、ckpt等格式权重转换为wts,其代码细节如下: def checkpint2wts(model, wts_file): ''' model:模型,需要权重 wts_file:保存wts权重路径,如result.wts ''' imp 阅读全文
摘要:
今日在读取代码时,发现我们平时数据增强Resize方法,除了CV最近邻、双线性、上下采样方法等,也有图像透视变换等方法,但很少用在深度学习中的数据增强Resize处理, 为此本文将记录这一方法,将透视变换用于模型输入Resize方法,因其简单,我将直接放入代码与结果: 代码如下: import nu 阅读全文
摘要:
混淆矩阵(confusion matrix)衡量的是一个分类器分类的准确程度。理解其概念本身容易理解,但一些特定术语易被混淆。 为此本文针对多分类或二分类的混淆矩阵给出相应原理解释,并为更好理解,本文也实现如何求解混淆矩阵。 因此,本文内容结构包含,原理介绍、代码实现、结果展示。 一 原理介绍 混淆 阅读全文