模型部署、加速、优化
文章平均质量分 59
持久化,量化,减枝蒸馏,压缩
magic_shuang
灵魂歌手
展开
-
量化基础总结
量化分类及基本概念 模型量化方法本质上是函数映射。量化建立了高精度的浮点数值和量化后低精度的定点数值之间的数据映射。分为线性量化和非线性量化【线性量化】线性量化是目前最常用的量化方法,尤其是在工业界应用比较成熟的8比特量化方案采用的都是线性量化。浮点->定点的公式如下:定点->浮点的公式如下:其中:...原创 2022-04-24 13:48:00 · 7918 阅读 · 1 评论 -
【部署 目录】
类别 功能 框架 引用 链接 持久化 ckpt 模型保存 tensorflow 链接 持久化 ckpt 转 pb tensorflow 链接 持久化 yolov5 转 tensorrt Pytorch 量化 bazel 压缩 pb 模型 tensorflow 链接 量化 静态量化 Pytorch 链接 蒸馏 论文研究原创 2021-08-06 13:08:16 · 977 阅读 · 0 评论 -
YOLOv5 转 Tensor RT
step1:pt 模型转成 onnxyolov5/model/export.py输出模型:XXX.onnx XXX.torchscript.ptstep2:查看输出的onnx模型安装 netronpip install netron用netron看模型import netronnetron.start('best.onnx')step3:onnx-simplifier 简化模型安装 onnx-simplifierpip install onnx-s...原创 2021-08-06 13:06:38 · 1049 阅读 · 0 评论 -
【没有哪个港口是永远的停留~ 论文简读】GI Distillation for Object Detection
链接:2021 General Instance Distillation for Object Detection知识蒸馏典型的知识形分三类:基于响应的知识、基于特征的知识、基于关系的知识这篇论文是三种知识都用上了理解算法主要分5步,下面一一解释step1:GISM是啥? step2:咋通过GISM进行特征知识截取的? step3:咋通过GISM计算关系知识? step4:咋算响应知识的? step5:真的好使么?step1:GISM是啥?论文GISM模块计算过程如图...原创 2021-07-13 14:54:03 · 527 阅读 · 0 评论 -
【没有哪个港口是永远的停留~ 论文简读】2019 Distilling Object Detectors with Fine-grained Feature Imitation
链接:2019 Distilling Object Detectors with Fine-grained Feature Imitation代码:https://github.com/twangnh/Distilling-Object-Detectors思路是:首先定位这些知识密集的位置,并让学生模型模拟教师的高级特征反应图1如图1所示:【1】labels -> Fine-grained feature imitation Mask用标签框形成W×H×K 大小的...原创 2021-07-13 16:30:31 · 653 阅读 · 0 评论 -
【没有哪个港口是永远的停留~ 论文简读】Relational Knowledge Distillation
论文:Relational Knowledge Distillation【1】关系知识蒸馏,中的关系知识是啥?如图1,很明显就是字面意思,传统的知识蒸馏是让学生输出与教师模型一致,而本论文提出,输出之间的关系是要学习的知识图1传统的KD loss求法:其中是一个损失函数,它惩罚老师和学生之间的差异。可以KL散度【2】咋算的这个关系知识?图2如图2,很直观,通过teacher的输出提取出关系与学生的求loss那么其中的怎么算的?就是欧式距离,最终..原创 2021-07-14 10:49:41 · 405 阅读 · 0 评论 -
【没有哪个港口是永远的停留~ 论文简读】2017 Learning Efficient Object Detection Models withKnowledge Distillation
链接:2017 Learning Efficient Object Detection Models withKnowledge Distillation这篇论文是基于Faster--RCNN模型的 ,模型中的RPN部分对应图中Soft Label对应部分 RCN部分对应的是最右侧的预测,最终的Loss表示为一点一点看哈【1】先看左边的部分,是选取Teacher模型的中间层,以及Student的一个中间层。添加个适应层Adaptation,保证Teacher和Student同尺寸..原创 2021-07-13 17:54:51 · 305 阅读 · 0 评论 -
【没有哪个港口是永远的停留~ 论文总结】KD 知识蒸馏 目标检测 YOLOv5
前言:知识蒸馏干的事很简单,就是把大模型的输出作为小模型的软标签,这样小模型不仅有数据集的硬标签,还有大模型的软标签但是,令人头疼的是,对于分类问题这个软标签的定义很清晰明确,就是分类的置信度,但是目标检测的检测框,这个软标签应该是什么?最终预测的box?所有box输出?实验结果很差,还不如直接训练小模型准呢,看来还是不能想当然的无脑梭哈!那目标检测的软标签应该是什么?研究了X篇论文,在此记录一下他们的思路和方法2021 General Instance Distillation f原创 2021-07-13 16:33:54 · 1959 阅读 · 16 评论 -
【代码裁缝】YOLOv5 l to s Distillation
part1:源码赏析源码:... ... # student rois, cls_prob, bbox_pred, \ rpn_loss_cls, rpn_loss_box, \ RCNN_loss_cls, RCNN_loss_bbox, \ rois_label, stu_feature, mask_batch = fasterRCNN(im_data原创 2021-07-16 10:41:26 · 910 阅读 · 6 评论 -
tensorflow ckpt 格式的model转pb 固化模型
程序一:ckpt转pbimport tensorflow as tffrom tensorflow.python.framework import graph_utilfrom tensorflow.python.platform import gfile# 模型参数固化ckpt转pbdef freeze_graph(input_meta,input_checkpoint, output_graph): ''' :param input_checkpoint: :原创 2020-07-29 10:29:51 · 489 阅读 · 1 评论 -
保存和载入模型cpkt
tensorflow 模型保存:保存模型其实就是保存sess# 关键句子saver=tf.train.Saver()saver.save(sess, model_path)# 在语境中import tensorflow as tfdef Cnn(x_image): ... ... result = tf.nn.softmax(logit, name=...原创 2019-04-13 13:44:19 · 1902 阅读 · 0 评论 -
bazel tensorflow模型压缩
准备msys:https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20200720.exebazel:原创 2020-07-30 13:26:57 · 374 阅读 · 1 评论 -
Pytorch量化之静态量化
env:pytorch==1.7.1 torchvision==0.8.2 python==3.6注意:精度变差 操作比较简单,但还是需要动模型 层合并的部分需要对结构有了解 模型大小变为原来的1/4 推理速度提高20+%step1:加载模型就正常加载即可,没啥特别的model = Resnet().to(device)checkpoint = torch.load(weights, map_location=device)model.load_state_dict(c原创 2021-02-22 16:57:03 · 4669 阅读 · 8 评论