
深度学习
文章平均质量分 60
实战笔记
L888666Q
这个作者很懒,什么都没留下…
展开
-
深度学习中6种loss函数Pytorch API调用示例
交叉熵 CrossEntropyLoss、负对数似然 NLLLoss、KL散度 KLDivLoss、信息熵 、二分类交叉熵 BCELoss、余弦相似度 CosineEmbeddingLoss原创 2024-08-01 17:36:03 · 343 阅读 · 0 评论 -
深度学习中五种归一化原理
【代码】深度学习中五种归一化原理。原创 2024-08-01 16:42:16 · 281 阅读 · 0 评论 -
深度学习模型分布式训练
深度学习模型分布式训练方法和实现原创 2024-07-10 18:00:58 · 226 阅读 · 0 评论 -
STM32 AI 模型测试
仿真软件测试结果和真实情况差距过大。原创 2023-12-22 15:10:57 · 709 阅读 · 0 评论 -
了解神经网络
原创 2023-10-26 10:47:26 · 1049 阅读 · 0 评论 -
深度学习准确率提升之天花板分析
OCR文字识别流水线主要分为三个模块:文字检测->字符分割->字符识别人物识别流水线:图像预处理->人脸检测->眼睛分割->鼻子分割->嘴巴分割->逻辑回归分类原创 2023-07-04 11:30:26 · 1079 阅读 · 0 评论 -
卷积神经网络中特征图大小计算公式总结
W:输入特征图的宽,H:输入特征图的高,K:卷积核宽和高,Ppadding(需要填充的0的个数),N:卷积核的个数,S:步长width_out:卷积后输出特征图的的宽,height_out:卷积后输出特征图的高。原创 2023-01-16 16:14:37 · 10097 阅读 · 3 评论 -
深度学习---确保每次训练结果一致的方法
神经网络特意用随机性来保证,能通过有效学习得到问题的近似函数。采用随机性的原因是:用它的机器学习算法,要比不用它的效果更好。在神经网络中,最常见的随机性包含以下几个地方:初始化的随机性,比如权值正则化的随机性,比如dropout层的随机性,比如词嵌入最优化的随机性,比如随机优化原创 2022-12-05 17:29:34 · 4002 阅读 · 2 评论 -
对抗生成网络(GAN)中的损失函数
L1损失函数又称为MAE(mean abs error),即平均绝对误差,也就是预测值和真实值之间差值的绝对值。 L2损失函数又称为MSE(mean square error),即平均平方误差,也就是预测值和真实值之间差值的平方。原创 2022-11-10 18:20:45 · 17169 阅读 · 11 评论 -
深度学习中的注意力机制模型ECANet
SENet采用的 降维操作 会对通道注意力的预测产生 负面影响,且获取依赖关系效率低且不必要 ;基于此,提出了一种针对CNN的高效通道注意力(ECA)模块,避免了降维,有效地实现了 跨通道交互 ;原创 2022-11-03 14:40:48 · 3274 阅读 · 0 评论 -
深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)
常用的注意力机制多为SE Attention和CBAM Attention。它们基本都可以当成一个简单的网络。例如SE注意力机制,它主要就是由两个全连接层组成,这就是一个简单的MLP模型,只是它的输出变了样。所以,在我们把注意力机制加入主干网络里时,所选注意力机制的复杂程度也是我们要考虑的一个方面,因为增加注意力机制,也变相的增加了我们网络的深度,大小。原创 2022-11-03 10:56:20 · 9192 阅读 · 0 评论 -
关于pytorch nn.KLDivLoss()损失计算loss值为负数的原因
KL散度,又叫相对熵,用于衡量两个分布(离散分布和连续分布)之间的距离。原创 2022-08-15 14:46:32 · 6042 阅读 · 0 评论 -
深度学习之压缩模型大小且不掉点的方法---知识蒸馏
知识蒸馏的算法理论,就是将庞大的教师模型的重要的东西让学生模型来逼近和训练,让参数量少的学生模型能够和教师模型的效果差不多,或者比老师模型效果更好。原创 2022-08-11 18:27:52 · 1724 阅读 · 3 评论 -
深度学习的浪漫---普通图片自动转成卡通图片
将普通人像图片转换成对应的卡通形象图片原创 2022-08-04 15:31:37 · 502 阅读 · 0 评论 -
量化感知训练QAT(Quantification Aware Training)
为了减少网络模型的空间占用和运行速度,除了在网络方面进行改进,模型剪枝和量化算是最常用的优化方法。原创 2022-07-08 17:55:12 · 4665 阅读 · 3 评论 -
针对数据不平衡的加权随机采样WeightedRandomSampler
由于我们不能将大量数据一次性放入网络中进行训练,所以需要分批进行数据读取。这一过程涉及到如何从数据集中读取数据的问题,当遇到样本数据不平衡的问题,可以使用加权随机采样器WeightedRandomSampler根据各个样本数据的权重来平衡每个batch中各样本数据,提升模型的性能。pytorch提供了Sampler基类与多个子类实现不同方式的数据采样。子类包含:官方解释:WeightedRandomSampler中,采样的权重针对的是每⼀个样本,...原创 2022-06-09 15:39:24 · 2447 阅读 · 0 评论 -
深度学习中迁移学习方法原理
迁移学习是当前深度学习领域的⼀系列通⽤的解决⽅案,⽽不是⼀个具体的算法模型。我们使用模型在特定任务上收集的知识来解决不同但相关的任务。模型可以从上一个任务中学到的东西中获益,从而更快地学习新任务。迁移学习方法大致可以分为三类:(1)基于样本的迁移学习方法 从源域数据集中筛选出部分数据,使得筛选出的部分数据与目标数据概率分布近似 。(2)基于特征的迁移学习方法将源域与目标域样本映射到可再生和希尔特空间(RKHS),并最小化二者之间的差异。(3)基于参数/模型的迁......原创 2022-06-06 09:00:00 · 3633 阅读 · 1 评论 -
分类任务中精确率(Precision)、召回率(Recall)以及准确率(Accuracy)解释说明
精确率:在预测结果中被识别为正类别的样本(预测分类结果)中,确实为正类别的比例是多少召回率:在所有正类别样本(真实分类结果)**中,被正确识别为正类别的比例是多少?准确率:在所有样本中,被正确识别的样本的比例是多少?三个评价指标的计算公式若一个实例为正类,实际预测为正类,即为真正类(True Positv TP)若一个实例为负类,实际预测为负类,即为真负类(True Negative TN)若一个实例为负类,实际预测为正类,即为假正类(False Positv FP)若一个实例为正类,实际原创 2022-06-06 09:00:00 · 1722 阅读 · 0 评论 -
经典网络模型---DenseNet
简介CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,skip connection),这有助于训练过程中梯度的反向传播,从而能训练出更深的CNN网络。今天我们要介绍的是 DenseNet(Densely connected convolutional networks) 模型,它的基本思路与ResNet一致,但是它建立的是前面所有层与后面层的密集连接(d原创 2022-05-30 18:14:16 · 5894 阅读 · 1 评论 -
图像翻译网络模型Pix2Pix
Pix2pix算法(Image-to-Image Translation,图像翻译),它的核心技术有三点:基于条件GAN的损失函数,基于U-Net的生成器和基于PatchGAN的判别器。Pix2Pix能够在诸多图像翻译任务上取得令人惊艳的效果,但因为它的输入是图像对,因此它得到的模型还是有偏的。这里的有偏指的是模型能够在与数据集近似的 的情况下得到令人满意的生成内容,但是如果输入 与训练集的偏差过大,Pix2Pix得到的结果便不那么理想了。条件GAN如图,鉴别器D学习对假图片(由生成器合成)和真原创 2022-05-30 09:00:00 · 4545 阅读 · 0 评论 -
对抗生成网络GAN
简介对抗生成网络GAN(Generative Adversarial Networks)是由蒙特利尔大学Ian Goodfellow在2014年提出的机器学习架构,GAN是作为一种无监督的机器学习模型,对抗生成网络都由两部分组成:判别器(Discriminator)常用D表示;另一个称为生成器(Generator)用G表示。判别器与生成器的博弈过程是对抗生成网络学习过程,判别器通过不断学习提高自身的识别能力,而生成器利用判别器不断提升生成样本能力,当判别器对生成器生成的样本判断真伪概率为50%时,生成器原创 2022-05-23 09:00:00 · 810 阅读 · 0 评论 -
经典网络模型---MobileNet三代模型架构之V3
MobileNet V31)引入Squeeze- Excitation结构2)非线性变换改变, h-swish替换swishSE-netSE-net整体的结构,它可以融入到任何网络模型中S:操作对特征图采取全局平均池化,得到1*1*C的结果特征图中每个通道都相当于描述了一部分特征,操作后相当于是全局的E:Excitation操作想得到每个特征图的重要程度评分,还需要再来两个全连接层,最终整个结果也是1*1*C,相当于attnetionMobileNet V原创 2022-05-17 09:00:00 · 895 阅读 · 0 评论 -
经典网络模型---MobileNet三代模型架构之V2
MobileNet V21)Relu激活函数改变,用线性替代2)整体网络架构改变,类似resnet,但是反过来了,倒残差结构3)各方面表现效果较V1都有不错的提升ReLu会导致低维数据丢失一些特征,首先将2维特征经过矩阵T映射到M维,再进行relu计算,再还原回2维引入倒残差结构(Inverted Residuals)V2结构分析先升维再Relu,减少破坏MobileNet V2网络结构t为倍率,c是特征图个数,n为重复次数,s是strideShotcut结原创 2022-05-16 09:00:00 · 404 阅读 · 0 评论 -
经典网络模型---MobileNet三代模型架构之V1
MobileNet V1版本V1版本是把Depthwise卷积和Pointwise卷积组合到一起Depthwise对输入特征图的每个通道做卷积操作提取特征Pointwise用1x1的卷积核对刚刚得到的特征图进行卷积操作得到更多的特征图Depthwise Separable卷积(上面那俩哥们合体)参数量比较普遍使用3x3的卷积核,MobileNet的参数量约是传统卷积的1/9计算量比较使用3x3的卷积核,同样是传统卷积的1/9模型基本单元传统卷.原创 2022-05-13 10:58:30 · 527 阅读 · 0 评论 -
减少模型参数---模型剪枝(Pruning Deep Neural Networks)
简介模型剪枝就是根据神经元的贡献程度对网络中的神经元进行排名,可以从网络中移除排名较低的神经元,从而形成一个更小、更快的网络模型。基本思想示意图:模型剪枝根据神经元权重的L1/L2范数来进行排序。剪枝后,准确率会下降,网络通常是训练-剪枝-训练-剪枝(trained-pruned-trained-pruned)迭代恢复的。如果我们一次剪枝太多,网络可能会被破坏得无法恢复。所以在实践中,这是一个迭代过程——通常被称为迭代剪枝(iterative pruning):剪枝/训练/重复。代码实现原创 2022-05-12 18:49:58 · 4001 阅读 · 2 评论 -
RuntimeError: mat1 dim 1 must match mat2 dim 0 报错解决
原因是输入特征的维度不匹配导致解决方案1:使用avg_pool2d函数将特征图转换成1维self.linear3 = nn.Linear(96, 128)''''''#如果输入的每个特征图的大小是10x2,则用kernel_size=10x2, 对每个10x2的特征图进行avg_poolout = F.avg_pool2d(out, (10,2))out = out.view(out.size(0), -1)out = self.linear3(out)解决方案2:使用Adapt原创 2022-05-11 17:18:46 · 3307 阅读 · 0 评论 -
经典网络模型-SENet注意力机制
简介SENet是由 Momenta 和 牛津大学 的 胡杰等人 提出的一种新的网络结构,目标是通过显式的建模 卷积特征通道 之间的 相互依赖关系 来提高网络的表示能力。在2017年最后一届 ImageNet 比赛 classification 任务上获得 第一名。SENet网络的创新点在于关注channel之间的关系,希望模型可以自动学习到不同channel特征的重要程度。为此,SENet提出了Squeeze-and-Excitation (SE)模块。SE模块首先对卷积得到的特征图进行Squ.原创 2022-05-05 10:00:00 · 4364 阅读 · 0 评论 -
经典网络模型-ResNet
背景对于常规网络,随着网络层级的不断增加,模型精度不断得到提升,而当网络层级增加到一定的数目以后,训练精度和测试精度迅速下降,这说明当网络变得很深以后,深度网络就变得更加难以训练了。由于神经网络在反向传播过程中要不断地传播梯度,而当网络层数加深时,梯度在传播过程中会逐渐消失(假如采用Sigmoid函数,对于幅度为1的信号,每向后传递一层,梯度就衰减为原来的0.25,层数越多,衰减越厉害),导致无法对前面网络层的权重进行有效的调整。简介ResNet引入了残差网络结构(residual原创 2022-05-04 10:00:00 · 1543 阅读 · 0 评论 -
经典网络模型-VGGNet
简介2014年,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发出了新的深度卷积神经网络:VGGNet,并取得了ILSVRC2014比赛分类项目的第二名。VGGNet探索了卷积神经网络的深度与其性能之间的关系,成功地构筑了16~19层深的卷积神经网络,证明了增加网络的深度能够在一定程度上影响网络最终的性能,使错误率大幅下降,同时拓展性又很强,迁移到其它图片数据上的泛化性也非常好。VGGNet可以看成是加深版本的AlexNet,都是由卷原创 2022-05-03 10:00:00 · 451 阅读 · 0 评论 -
经典网络模型-GoogLeNet
简介2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名,这两类模型结构的共同特点是层次更深了。GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍,因此在内存或计算资源有限时,GoogleNet是比较好的选择;从模型结果来看,GoogLeNet的性能却更加优越。网络结构GoogLeNet团队提出了Inception网络结构,就是原创 2022-05-02 10:00:00 · 1376 阅读 · 1 评论 -
经典网络模型-AlexNet
简介:AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的。也是在那年之后,更多的更深的神经网络被提出,比如优秀的vgg,GoogLeNet。网络结构:AlexNet共8层:5个卷积层,3个全连接层卷积层C1该层的处理流程是: 卷积–>ReLU–>池化–>归一化卷积,输入是227×227x3,卷积核11x11x3,步长为4,卷积后的FeatureMap为 55x55x96 {(227-11+2*0.原创 2022-05-01 10:00:00 · 617 阅读 · 0 评论 -
经典网络模型-LeNet
LeNet简介LeNet是一个用来识别手写数字的最经典的卷积神经网络,是Yann LeCun在1998年设计并提出的。Lenet的网络结构规模较小,但包含了卷积层、池化层、全连接层,他们都构成了现代CNN的基本组件。原创 2022-04-30 10:00:00 · 1137 阅读 · 0 评论 -
‘CrossEntropyLoss‘ object has no attribute ‘backward‘报错解决
CrossEntropyLoss没有backward属性错误代码如下,调用封装函数直接会返回CrossEntropyLoss函数相当于直接调用了CrossEntropyLoss的backward,所以报错,应该对CrossEntropyLoss的返回值使用backwarddef CrossEntropyLoss_func(output, target): return nn.CrossEntropyLoss()loss = CrossEntropyLoss_func(output, t原创 2022-04-21 15:04:27 · 3620 阅读 · 0 评论 -
深度学习之常用的激活函数
激活函数torch.nn.Sigmoid()torch.nn.Tanh() torch.nn.ReLU() torch.nn.LeakReLU()Relu6torch.nn.Softmax()恒等激活函数 torch.nn.Swish() torch.nn.Hardswish ()原创 2021-09-29 18:29:22 · 485 阅读 · 0 评论 -
深度学习之参数初始化方法以及常用的参数优化器
参数初始化方法全0初始化---不采用每个权重被初始化成了相同的值,那么权重失去了不对称性随机初始化高斯随机化、均匀随机化稀疏初始化使用较少,全部初始化为0再随机挑选一些参数附上随机值Xavier适用于激活函数是sigmod或 tanh等S型曲线函数Kaiming激活函数是ReLU的专用初始值参数优化器SGD随机梯度下降法,梯度的方向并没有指向最小值的方向时,寻找路线是‘之’字型效率低Momentum动量,参照小球在碗中滚动的物理规则进行移动.原创 2021-09-29 17:30:39 · 334 阅读 · 0 评论 -
深度学习之常用的损失函数
损失函数适用于回归问题的损失函数torch.nn.L1Loss()----平均绝对值误差损失torch.nn.MSELoss()----均方误差损失torch.nn.KLDivLoss()----KL散度损失torch.nn.SmoothL1Loss()----平滑的L1损失适用于分类问题的损失函数torch.nn.BCELoss()----二分类交叉熵损失torch.nn.SoftMarginLoss()----多标签二分类torch.nn.CrossEntropy原创 2021-09-29 17:20:02 · 351 阅读 · 0 评论 -
TensorFlow、Pytorch、Caffe深度学习的框架对比
斯坦福CS231n 2017最新课程:李飞飞详解深度学习的框架实现与对比https://www.jiqizhixin.com/articles/2017-06-19-7转载 2021-09-06 19:24:25 · 620 阅读 · 0 评论