神经网络
文章平均质量分 79
数据猴赛雷
这个作者很懒,什么都没留下…
展开
-
目标检测指标AP50/准确率/召回率说明
AP的计算方式是在准确率-召回率曲线上,计算曲线下的面积,然后求平均值。因为对于每个类别,准确率-召回率曲线是不同的,所以会分别计算每个类别的AP值。准确率-召回率曲线:算法推理时每个预测框都有目标识别的置信度,通过在不同的置信度阈值下,以不同的召回率计算出的对应的准确率的点组成的曲线。比如有这么一种计算方式,取AP50到AP60,以0.5为间隔进行取值,分别得到不同的APX的值,然后求平均值及可得到mAP的值。,得到一个平滑的曲线,计算该曲线下的面积作为AP50的值。它是计算多组值的平均值。原创 2024-05-30 00:46:25 · 814 阅读 · 0 评论 -
LangChain调用tool集的原理剖析(包懂)
在聊天场景中,针对用户的问题我们希望把问题逐一分解,每一步用一个工具得到分步答案,然后根据这个中间答案继续思考,再使用下一个工具得到另一个分步答案,直到最终得到想要的结果。这个场景非常匹配langchain工具。在langchain中,我们定义好很多工具,每个工具对解决一类问题。然后针对用户的输入,langchain会不停的思考,最终得到想要的答案。原创 2024-04-11 15:35:31 · 2688 阅读 · 2 评论 -
Stable Diffusion核心算法DDPM解析
stable diffusion中核心算法DDPM的详细阐述原创 2023-08-17 10:55:11 · 1665 阅读 · 0 评论 -
Stable Diffusion Webui源码剖析
遍历callback_map['callbacks_model_loaded']所有的回调函数,然后把sd_model模型传进去依次执行这些回调函数。接着用OmegaConf.load加载yaml文件,然后通过/data/work/xiehao/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/util.py(82)instantiate_from_config()加载yaml信息获得model。原创 2023-08-11 19:11:15 · 5959 阅读 · 1 评论 -
Chatglm2使用及微调教程
chatglm2是清华大学的,比较好的LLM大语言模型。本教程主要是提供使用及微调的方法,适合linux上开发。原创 2023-07-20 10:48:35 · 3916 阅读 · 2 评论 -
知识蒸馏的说明
知识蒸馏(Knowledge Distillation,简称KD)是一种经典的模型压缩方法,核心思想是通过引导轻量化的学生模型“模仿”性能更好、结构更复杂的教师模型,在不改变学生模型结构的情况下提高其性能。原创 2023-06-19 21:33:12 · 569 阅读 · 0 评论 -
ModNet抠图算法及摄像头实时抠图示例
网络结构由:语义估计分支、细节预测分支、语义-细节融合分支 组成原创 2023-06-09 23:54:28 · 2239 阅读 · 0 评论 -
CLIP对比语言-图像预训练算法
它是一个开源的、多模式的、zero-shot的模型。如果提供一张图像和一段文本描述,该模型可以预测与该图像最相关的文本描述,或者可以预测与该文本最相关的图像。开源的:该模型是由OpenAI构建并开源的。多模式的:CLIP同时结合了自然语言处理和计算机视觉等多个领域的技术。zero-shot:zero-shot学习是一种对未见过的标签进行归纳的方法,并且我们不需要专门训练如何对它们进行分类。原创 2023-06-06 19:08:55 · 859 阅读 · 0 评论 -
Stable Diffusion原理说明
在最简单的形式中,Stable Diffusion是一种文本到图像模式,给它一个文本提示(text prompt),它将返回与文本匹配的图像。原创 2023-06-06 11:20:54 · 3507 阅读 · 0 评论 -
CycleGAN二次解读
本次对简化版的github源码进行解读,使得代码和原理更清晰易懂原创 2023-03-17 11:15:59 · 667 阅读 · 0 评论 -
cycleGAN算法解读
CycleGAN:循环生成对抗神经网络,是一种非监督学习模型。原创 2023-03-01 19:19:07 · 7024 阅读 · 0 评论 -
CycleGAN代码使用入门
cycleGAN代码使用教程,手把手教你下载数据集,调通代码,并且用新的图片测试模型的效果原创 2023-02-24 11:11:59 · 2903 阅读 · 5 评论 -
GAN入门示例
GAN:Generative Adversarial Nets,生成对抗网络。在给定充分的建模能力,两个博弈模型能够通过简单的反向传播来协同训练。原创 2023-02-23 10:32:53 · 363 阅读 · 0 评论 -
再次解读CTCLoss
CTCLoss的第二次解读,本版本脉络更加清晰,从最外层逐渐从最里层的解读原创 2023-02-06 14:35:09 · 561 阅读 · 0 评论 -
Swin-Transformer算法解析
Swin-Transformer算法从概述到详述,通俗易懂原创 2023-01-30 16:37:35 · 2366 阅读 · 1 评论 -
transformer算法解析
transformer的概述、详述,以及示例代码原创 2023-01-16 16:08:06 · 3841 阅读 · 1 评论 -
got torch.cuda.IntTensor instead (while checking arguments for embedding)
embedding时输入的值为int类型,而要求的是long类型。而data数据就是torch.cuda.IntTensor代码。原创 2023-01-13 14:59:26 · 616 阅读 · 0 评论 -
Seq2Seq增加attention机制的原理说明
基于中英翻译的seq2seq原理说明,同时阐述遇到的问题,并且增加attention机制后的seq2seq原理说明原创 2023-01-11 16:25:42 · 574 阅读 · 0 评论 -
各种卷积的说明
具体来说:首先会拿这个3*3*3的卷积核放到最左上角的位置,这个3*3*3的卷积核有27个数字,分别与原始图像对应的27个数字做内积,这样就得到了第一个数字,然后再根据相应的步长向右、向下移动。因为我们的输入有32个维度,我们学习64个不同的3*3*32过滤器,因此总权重的总数为N*M*L*K。所以,假设c0表示输入通道数,c1表示输出通道数,则有n*n*c0和一个c1*f*f*c0的卷积核进行处理,得到m*m*c1的输出。6*6*3的图像和两个3*3*3的过滤器卷积,得到4*4*2的输出。原创 2023-01-05 14:29:52 · 1338 阅读 · 1 评论 -
基于Slimming的MobileNetV3半自动剪枝
针对MobileNetv3,介绍了NNI工具存在的不足之处,同时详细介绍了基于Slimming理论的剪枝方法,以及剪枝过程中碰到的问题定位方法。原创 2023-01-04 16:00:35 · 1835 阅读 · 5 评论 -
MobileNetV3基于NNI剪枝操作
原因,返回的数据不符合torch.jit.trace的要求,而示例model返回的是一个dict,它不是tensors | lists | tuples of tensors | dictionary of tensors中的一种。需要把MobileNetV3的代码拆分成两部分,一部分是核心代码,另一部分是根据业务进行view之后的相关代码。本文的剪枝操作针对CenterNet算法的BackBone,即MobileNetV3算法。根据核心代码的输出,只调整in_channel的值,不做剪枝处理。原创 2022-12-15 17:35:10 · 1296 阅读 · 2 评论 -
MobileNetV3原理说明及实践落地
每个Block经过两个卷积层后得到一个由channel个元素组成的向量,每个元素是针对每个通道的权重,将权重和原特征图对应相乘,得到新的特征图数据。原创 2022-12-15 11:11:17 · 1838 阅读 · 0 评论 -
MobileNetV2原理说明及实践落地
MobileNetV1主要是提出了可分离卷积的概念,大大减少了模型的参数个数,从而缩小了计算量。但是在CenterNet算法中作为BackBone效果并不佳,模型收敛效果不好导致目标检测的准确率不高。MobileNetV2在MobileNetV1的DW和PW的基础上进行了优化,使得准确率更高,作为CenterNet算法的BackBone效果也可以。Inverted Residuals:倒残差结构Linear Bottlenecks:结构的最后一层采用线性层。原创 2022-12-13 14:16:04 · 2471 阅读 · 2 评论 -
MobileNetV1作为CenterNet的Backbone尝试
输入为512*512,输出为:heatmap(128*128*C)、wh(128*128*2)、reg(128*128*2)。最后一层通过x.view(x.size(0), -1)和nn.Linear后得到[batch_num * class_num]DLASeg的训练集loss可以降到1.0以下,而MobileNet v1的训练姐loss只能降到3.0左右。x.view(x.shape[0], -1, 128, 128),其中第2个维度为16。然后通过1*1卷积核进行通道数的升、降维。原创 2022-12-12 15:48:46 · 586 阅读 · 0 评论 -
MobileNet v1神经网络剖析
本文参考:MobileNet网络_-断言-的博客-CSDN博客_mobile-neConv2d中的groups参数(分组卷积)怎么理解? 【分组卷积可以减少参数量、且不容易过拟合(类似正则化)】_马鹏森的博客-CSDN博客_conv groupsPytorch MobileNetV1 学习_DevinDong123的博客-CSDN博客 传统卷积神经网络,内存需求大、运算量大导致无法在移动设备以及嵌入式设备上运行。MobileNet网络提供了轻量级CNN网络。原创 2022-12-08 11:07:41 · 688 阅读 · 0 评论 -
CNN卷积参数量计算
参考:轻量级网络-Mobilenet系列(v1,v2,v3) - 知乎盘点下每种类型的层计算可学习参数的数量Input layer:输入层所做的只是读取输入图像,因此这里没有可以学习的参数。Convolutional layers:一个卷积层,其输入为l个特征图,输出为k个特征图,过滤器尺寸为n*m。如下举例:输入有l=32个特征图作为输入,k=64个特征图作为输出,滤波器大小为n=3,m=3,它是一个3*3*32的过滤器,因为我们的输入有32个维度。我们学习64个不同的3*3*32过滤器。原创 2022-12-06 16:19:29 · 1248 阅读 · 0 评论 -
CenterNet算法代码剖析
针对heatmap、wh、reg分别各自使用一种loss计算方式,最后加权获得最终的loss值。其中heatmap使用FocalLoss计算方式,wh和reg使用L1Loss计算方式。原创 2022-11-29 18:44:59 · 3715 阅读 · 4 评论 -
残差网络ResNet解读
但是如果把网络设计为H(x)=F(x)+x,可以转化为学习一个残差函数F(x)=H(x)-x=0,就构成了一个恒等映射H(x)=x。假设H(x)是最终要拟合的函数,则令H(x)=F(x)+x,其中F(x)代表普通的堆叠起来的网络拟合出来d额函数,x是输入,普通网络的激活函数用的是relu函数。残差网络的前向传播,输入信号可以从任意低层直接传播到高层,由于包含了一个天然的恒等映射(Identity Mapping),一定程度上可以解决网络退化的问题。退化问题:网络层数增加,模型的训练误差反而大于浅层模型。原创 2022-11-23 19:23:47 · 1473 阅读 · 0 评论 -
使用NNI对DLASeg剪枝的失败记录
最后一个文件有一个注意点,就是dummy_input输入一定是[batch, 3, 512, 512]的形式,否则卷积池化后残差连接会有问题,会出现[batch, 128, 3, 3] 和[batch, 128, 2, 2]相加的情况。dla_up.ida_0.proj_1.actf.0 或 dla_up.ida_0.proj_1.conv.conv_offset_mask或dla_up等都失败,报错信息还是一样的。主要是DCN的输出为empy,导致dummy_input的list为空的。原创 2022-11-19 00:40:35 · 957 阅读 · 0 评论 -
nni模型剪枝
NNI:Neural Network Intelligence,是一个轻量但强大的自动机器学习工具包,能帮助用户自动进行特征工程、神经网络架构搜索、超参调优以及模型压缩。在运行相同的迭代次数情况下,nni的准确率没有slimming高。原创 2022-11-17 10:30:06 · 1257 阅读 · 0 评论 -
Slimming剪枝方法
slimming模型剪枝理论与实践原创 2022-11-16 15:36:22 · 1472 阅读 · 2 评论 -
神经网络梯度爆炸、梯度消失原因及解决方案
梯度消失、梯度爆炸的原因及解决方案原创 2022-10-17 19:34:05 · 1329 阅读 · 0 评论 -
CenterNet模型Flask在线部署
centernet在flask上部署在线服务demo原创 2022-10-15 08:46:34 · 228 阅读 · 1 评论 -
PCA降维算法
pca算法原创 2022-09-28 16:15:47 · 1608 阅读 · 0 评论 -
从仿射变化到STN网络
STN网络解读原创 2022-09-26 11:08:02 · 1235 阅读 · 0 评论 -
GBDT算法解读
GBDT算法解读原创 2022-09-15 14:43:19 · 534 阅读 · 0 评论 -
逻辑回归算法原理解读
逻辑回归算法原创 2022-09-07 14:16:48 · 444 阅读 · 0 评论 -
SVM算法原理解读
SVM解读原创 2022-09-05 15:25:56 · 974 阅读 · 0 评论 -
softmax函数计算时减去一个最大值的原因
softmax深入理解原创 2022-09-02 15:03:18 · 1167 阅读 · 0 评论 -
CTCLoss原理解读
CTCLoss总结原创 2022-09-02 11:39:36 · 1476 阅读 · 0 评论