半精度调试总结 Posted on 2022-05-04 | Visitors: 问题描述MMOCR在MMDeploy中部署时,PANet模型在以TensorRT-fp16为后端的情况下会有精度损失。hmean-iou由原本的0.8-掉点到0.2-。此时需要相应的debug查找问题原因。 排除法查找节点首先请教了有相关经验的同事,被告知一般只能二分查找,没有更方便的工具。此外,如 ... Read more »
libtorch教程(八) Posted on 2021-05-03 | Visitors: 这是个教程总结,libtorch教程一共八章,主要是实现了c++版本的分类,分割和检测工具吧。这对一些需要C++/C#/Java做项目的同志来说,想必是大大的福音了。 由于代码全程几乎手敲,不像现在许多python项目,可以直接从其他地方CV(ctr C + ctr V)过来,同 ... Read more »
libtorch教程(七) Posted on 2021-05-03 | Visitors: 阅读本文需要有基础的pytorch编程经验,目标检测框架相关知识,不用很深入,大致了解概念即可。 本章简要介绍如何如何用C++实现一个目标检测器模型,该模型具有训练和预测的功能。本文的分割模型架构使用yolov4-tiny结构,代码结构参考了bubbliiiing yolov4-tiny,本文分享的 ... Read more »
Faster RCNN目标检测部署加速 Posted on 2021-04-04 | Visitors: 前言先说一下,这个博客不涉及TensorRt加速,不涉及半精度或者int8精度加速,仅仅是libtorch部署时,NMS和RoI Pool的加速问题。当然,最后实操下来目前没有做到比python下调用torchvision的api做到的总体结果快,算是一次失败的双阶段网络搭建尝试,后续有时间再更新找 ... Read more »
C++图像分割库 Posted on 2021-03-04 | Visitors: 基于LibTorch (Pytorch C++)的C++开源图像分割神经网络库. 分享一个C++的图像分割开源库libtorch segment,支持C++训练分割模型,可以训练自己的数据集。支持FPN,UNet,PAN,DeepLabV3和DeepLabV3+,支持ResNet系列和R ... Read more »
libtorch教程(六) Posted on 2021-02-10 | Visitors: 本章简要介绍如何如何用C++实现一个语义分割器模型,该模型具有训练和预测的功能。本文的分割模型架构使用简单的U-Net结构,代码结构参考了qubvel segmentation中的U-Net部分,该项目简称SMP,是基于pytorch实现的开源语义分割项目。本文分享的c++模型几乎完美复现了pyth ... Read more »
QT Creator + Opencv + Libtorch +CUDA深度学习最全配置 Posted on 2021-01-21 | Visitors: 前言纯c++用户而言如果要自研产品,会一个图形界面编程工具还是有必要的。大多数c++用户,如果在Windows平台开发则多使用微软全家桶,如果是Linux平台则可能是其他工具再cmake。这篇博客将记录Windows平台,QT Creator中Opencv和Libtorch的配置。网上有较多关于使用 ... Read more »
c++函数的传参 Posted on 2021-01-18 | Visitors: 前言在阐述c++中函数传参之前,先说明一下为何写这篇博客。事实上,c++的传参方式的讨论已经很多,但是在解剑指 Offer 27. 二叉树的镜像(Leetcode 226翻转二叉树)时发现三种传参方式自己并没有完全弄清,在以树指针为对象时,就出现错误。 交换两个变量网上有三种常见的交换变量的方式,第 ... Read more »
libtorch教程(五) Posted on 2021-01-18 | Visitors: 前面的章节中我们介绍了libtorch的环境搭建(VS和Qt),libtorch张量常用操作,简单的MLP,CNN和LSTM模型搭建,以及数据加载类的使用。本章将以图像分类任务为例,详细介绍如何使用c++训练一个图片分类器。 模型本文以VGG为例,对比pytorch下的模型搭建和训练,阐述Libto ... Read more »
libtorch教程(四) Posted on 2021-01-18 | Visitors: 本章将详细介绍如何使用libtorch自带的数据加载模块,使用该模块是实现模型训练的重要条件。除非这个数据加载模块功能不够,不然继承libtorch的数据加载类还是很有必要的,简单高效。 使用前置条件libtorch提供了丰富的基类供用户自定义派生类,torch::data::Dataset就是其中 ... Read more »