dl
文章平均质量分 73
Lord_Rebel
程序员新兵~
展开
-
torch2trt代码走读
torch2trt 是 nvidia tensort 组 推出的,将torch 模型(torch.nn.Module)整图转换为CudaEngine 并用 TRTModule进行封装(TRTModule 继承于torch.nn.Module,用于forword)这样就实现了以下几个特点:1.独立于torch提供了一套基于trt且兼容torch的量化/转换/推理2.从用户角度,只需简单调用convert 接口,推理部分不用做任何改变(因为继承自torch.nn.module)原创 2023-04-06 19:41:25 · 794 阅读 · 0 评论 -
tf2trt源码走读(二)python 接口
Trt converter 实例化时传入的参数,用于控制生成engine以及对graph进行segment时的相关参数:1.max_workspace_size_bytesenigine 做多用到临时显存数量。2.precision_mode模型的精度类型: FP32/FP16/INT8 (注意:int8 需要量化数据进行标定)3.min_segment_size在切子图时,子图最少包含的node数量(当子图node数量小于此设置时不会切子图)4.maximum_cached_engines对于动态的TRT原创 2022-06-19 21:57:01 · 345 阅读 · 0 评论 -
tf2trt源码走读(一)导读
本篇为“tf2trt源码走读”系列的导读部分。由于工作原因,前段时间阅读了下tf2trt 的源码,现在在这里总结一下,以备不时之需。tf2trt用法可以参考:https://blog.csdn.net/weixin_43842032/article/details/103764010 从使用语言来看,tf2trt分为两部分,python部分作为前端,c++部分作为后端。python部分主要定义了一个converter类用于完成tf2trt的转换(Trt...原创 2022-04-09 18:14:00 · 361 阅读 · 0 评论 -
tensorRT 7.0 学习笔记(六)———踩过的一些坑
本篇文章主要记录下,我在使用trt7.0时遇到的一些问题1.batch inference在trt7.0转换模型时创建IWorkDefinition 时需要使用接口:IBuilder::createNetWorkV2,此时需要使用制定一个flag这个flag可以是EXPLICIT_BATCH 或EXPLICIT_PRECISION.当使用EXPLICIT_BATCH时,生成的engine 输入为4dims的(NCHW)但是无法用trt<6.0的接口(IExcutionContext::ex原创 2021-04-05 22:53:54 · 1426 阅读 · 2 评论 -
gstreamer&&deepstream 学习笔记(四)——GLIB
gstreamer 是基于glib实现的,所以,在使用gstreamer的过程中,会用到大量的glib的接口,什么是glib呢?glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性。glib是Gtk +库和Gnome的基础。glib可以在多个平台下使用,比如Linux、Unix、Windows等。glib为许多标准的、常用的C语言结构提供了相应的替代物。 (来源:百度百科)以下是我在看Deepstream官方sample时不断总结的glib函数,当然也可以直接参考:ht原创 2021-03-22 00:41:33 · 1041 阅读 · 0 评论 -
tensorRT 7.0 学习笔记(五)———量化/动态输入shape(c++ api)
1.int8 量化首先需要为 Ibuilder 设置校准器(caliborator)主要作用就是通过一定的算法把每层的weights 和输出tensor 映射到 int范围,TRT提供了以下几种校准器:需要在继承其中之一后实现 getBatch()方法,然后调用:为builder设置校准器。同时实现 writeCalibrationCache()andreadCalibrationCache()缓存/载入校准表builder内部的工作原理:1.调用 getBa...原创 2021-03-22 00:26:10 · 2796 阅读 · 0 评论 -
gstreamer&&deepstream 学习笔记(三)——deepstream组件概览
1.deep stream提供的组件:2.gst-nvinfer 的配置参数:3.官方网站:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvinfer.html deepstream 官方文档https://forums.developer.nvidia.com/ ...原创 2021-03-14 23:26:35 · 436 阅读 · 0 评论 -
tensorRT 7.0 学习笔记(四)———(c++ api)
1.模型推理:1.1创建IExecutionContextIExecutionContext *context = engine->createExecutionContext();获取输入输出tensor的索引:int inputIndex = engine->getBindingIndex(INPUT_BLOB_NAME);int outputIndex = engine->getBindingIndex(OUTPUT_BLOB_NAME);1.2准备buffer原创 2021-03-14 23:14:03 · 3112 阅读 · 18 评论 -
tensorRT 7.0 学习笔记(三)---使用python api转换onnx模型并序列化
import tensorrt as trt#build loggertrt_logger=trt.Logger(trt.Logger.Warning)#create network#1.parser dataType=trt.float32With trt.Builder(trt_logger) as builder,builder.create_network() as network,trt.CaffeParser() as parser: .原创 2021-03-07 23:28:47 · 860 阅读 · 2 评论 -
tensorRT 7.0 学习笔记(二)——c++ api
1.创建Looger 用于记录转换过程中log2.创建INetwork创建Network有两种方法:1.直接用tensorrt的api搭建网络 2.使用parser(解析器)将已有的模型转换成Network2.1使用api创建Network(略)可以参考:https://github.com/NVIDIA/TensorRT/blob/master/samples/opensource/sampleMNISTAPI/sampleMNISTAPI.cpp官方例子2.2使用pa..原创 2021-03-07 23:21:13 · 2553 阅读 · 3 评论 -
gstreamer&&deepstream 学习笔记(二)——gstreamer 一些 tips
1.fakesink在使用fakesink 时 一定要注意“enable-last-sample” 其默认是True,功能是:enable-last-sample” property of fakesink will hold the last GstBuffer until new GstBuffer is available. The nvv4l2decoder and nvstreammux all work with buffer pool, so it is important to r.原创 2021-03-07 22:32:25 · 911 阅读 · 0 评论 -
gstreamer&&deepstream 学习笔记(一)——gstreamer
主要参考:https://blog.csdn.net/han2529386161/article/details/102896875https://gstreamer.freedesktop.org/documentation/tutorials/index.htmlGstreamer 三个重要概念: 元件(element),箱柜(bin),衬垫(pad)衬垫基本概念:下面的这个比喻可能对你理解衬垫(Pads)有所帮助。一个衬垫(Pads)很象一个物理设备上的插头。 例如一个家庭..原创 2021-02-27 21:30:05 · 2126 阅读 · 2 评论 -
tensorRT 7.0 学习笔记(一)——python api
本系列为我在学习tensorRT 7.0 时的学习笔记主要参考了官方文档以及一些例子。核心概念:Tensorrt.INetWorkDefinition 可以由 parser(uff,tensorflow,caffe,等创建)tensorRT.Builder 可以创建空的Tensorrt.INetWorkDefinitionTensorrt.builder+Tensorrt.INetWorkDefinition 创建tensorrt.ICudaEngine基于tensorrt.ICudaEn.原创 2021-02-27 20:41:07 · 1310 阅读 · 1 评论 -
一个小目标:构建一个classfier超越 lenet5!(model1_cifar10)
新的模型结构还没,想出来.....想先试试cifar10上训练的结果和lenet5的差距,baseline主要参考这里。然而我没有1080Ti...... 我只有1060 6G版,哭首先先写个cifar10的数据读入和预处理的脚本,脚本在之前的repo cifar10_loader.py 这里只讲一下大概的函数:import pickleimport globimport cv2import tqdmimport osimport sysimport logging..原创 2020-06-20 23:09:50 · 252 阅读 · 17 评论 -
一个小目标:构建一个classfier超越 lenet5!(model_1)
闲来无事(好像也不闲啊)想从零开始构建一个model在mnist 上超过lenet5而且只训练1000steps,利用这两年看的论文,还是有信心的,毕竟lenet5 是20年前的模型啊!首先看下baseline:emmmm,还是很高的。先说说想法: 我想搞个 inception 那样的block 为啥呢因为我觉着 1.一个block里花样多一些有利于提取不同尺度下的特征,而且某种角度上看 inception就是resnet的跨层连接的变种。首先构建block:...原创 2020-05-30 16:56:51 · 273 阅读 · 2 评论 -
如何将tensorflow mobilenet v1 coco 转成 coreml 模型 ?
好久好久没有写博客了,今天记录下前段时间做一个项目遇到的问题和解决办法。之前做一个ios app,需要将训练好的 mobilenetv1 ssd 模型部署到 app上,所以研究了下模型转换(说实话mobilenet v1 ssd coco 这个模型略微坑爹,转tensorflow lite 时也遇到诸多问题,这个有机会之后讲)。 要点时一定要根据自己的 model.config文...原创 2019-11-09 22:53:06 · 544 阅读 · 0 评论