python
文章平均质量分 87
小Aer
站在巨人的肩膀上仰望星空
展开
-
目标检测的类别损失和位置损失
文章目录类别损失Cross Entropy Loss二分类损失多分类损失Focal Lossα\alphaα平衡正负样本(1−pt)γ(1-p_t)^\gamma(1−pt)γ平衡难易样本α+γ\alpha + \gammaα+γ结合位置损失L1 LossL2 LossSmooth L1 LossIoU LossGIOU LossDIoU LossCIoU LossInference类别损失Cross Entropy Loss交叉熵损失分为二分类损失和多分类损失二分类损失对于二分类问题(即0-1原创 2022-05-02 10:34:28 · 1324 阅读 · 0 评论 -
解决梯度爆炸和梯度消失
文章目录原因解决方案1.预训练和微调2.relu、leakyrelu、Relu等激活函数3.Batch Normalization(批规范化)4.残差结构5.梯度剪切、正则6.LSTM(长短期记忆网络)原因梯度消失和梯度爆炸两种情况产生的原因可以总结成2类原因:1.深层网络的结构;2.不合适的损失函数,比如Sigmoid函数。梯度爆炸一般出现在深层网络和权值初始化值太大的情况下。解决方案1.预训练和微调预训练:无监督逐层训练,每次训练一层隐藏点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输原创 2022-04-27 21:08:57 · 375 阅读 · 0 评论 -
loss损失不下降的原因
文章目录前言训练集loss不下降1.模型结构和特征工程存在问题2.权重初始化方案有问题3.正则化过度4.选择合适的激活函数,损失函数5.选择合适的优化器和学习速率6.训练时间不足7.模型训练遇到瓶颈8.batch size过大9.数据集未打乱10.数据集有问题11.未进行归一化12.特征工程中对数据特征的选取有问题验证集loss不下降1.适当的正则化和降维2.适当降低模型规模3.获取更多的数据集4.对数据集做扰动和扩增测试集loss不下降1.应用场景有问题2.噪声问题前言当我们训练一个神经网络模型的时候转载 2022-04-27 18:54:19 · 13777 阅读 · 0 评论 -
1*1卷积核的作用
文章目录来源应用作用跨通道的特征整合特征通道的升维特征通道的降维减少卷积核参数(简化模型)保持feature map尺度不变,增加非线性和全连接层的关系来源Network In Network一文中提到,如果1×1卷积核接在普通的卷积层后面,配合激活函数,即可实现network in network的结构应用GoogleNet中的Inception(升维和降维)、ResNet中的残差模块作用跨通道的特征整合例子:使用1∗11*11∗1卷积核,实现降维和升维的操作其实就是channel间信息的原创 2022-04-27 14:55:09 · 681 阅读 · 0 评论 -
目标检测的入门(截至2020)
目标检测入门原创 2022-04-25 20:51:12 · 955 阅读 · 0 评论 -
BN与LN的区别
BN与LN的区别主要区别在于 normalization的方向不同!Batch 顾名思义是对一个batch进行操作。假设我们有 10行 3列 的数据,即我们的batchsize = 10,每一行数据有三个特征,假设这三个特征是【身高、体重、年龄】。那么BN是针对每一列(特征)进行缩放,例如算出【身高】的均值与方差,再对身高这一列的10个数据进行缩放。体重和年龄同理。这是一种“列缩放”。而layer方向相反,它针对的是每一行进行缩放。即只看一笔数据,算出这笔所有特征的均值与方差再缩放。这是一种“行缩放”原创 2022-04-25 12:51:11 · 12008 阅读 · 4 评论 -
Pytorch:model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别
文章目录model.train()🎃model.eval()model.train()model.eval()model.eval()🎃torch.no_grad()Inferencemodel.train()🎃model.eval()model.train()和model.eval()的区别主要在于Batch Normalization和Dropout两层。model.train()启用 Batch Normalization 和 Dropout。如果模型中有BN层(Batch Normaliz原创 2022-04-25 10:49:32 · 362 阅读 · 0 评论 -
网络中的参数量(param)和浮点计算量(FLOPs)的计算
文章目录0️⃣前言1️⃣概念2️⃣如何计算网络中的参数量(param)🐱👤2.1卷积层:🐱👤2.2池化层:🐱👤2.3全连接层:3️⃣如何计算网络中的计算量🐱👓3.1一次卷积的计算量,如何计算呢?🐱👓3.2全连接层的计算量4️⃣计算参数量和计算量(pytorch库)🐱🚀4.1Torchstat🐱🚀4.2Torchinfo🐱🚀4.3Thop🐱🚀4.4Ptflops🐱🚀参数总量和可训练参数总量5️⃣输入数据对模型的参数量和计算量的影响6️⃣引用0️⃣前言本文介绍了卷积层和全连接层的参数量和原创 2022-04-24 08:30:00 · 5867 阅读 · 6 评论 -
Batch梯度下降、随机梯度下降和mini-batch梯度下降
文章目录🐱👓梯度下降🐱💻随机梯度下降🐱🚀mini-batch梯度下降🐱👤总结🐱👓梯度下降梯度下降又名批量梯度下降(Batch Gradient Descent),采用的方法是计算一个epoch(每个epoch都包含所有样本量)中所有样本的Loss和,对损失求平均就是当前epoch的损失值,进而计算梯度进行反向传播、参数更新。🐱💻随机梯度下降随机梯度下降(SGD,现在SGD含义发生了变化,不是指随机梯度下降),采用的方法是对一个epoch每一个样本都进行Loss求解,进而计算梯度进行反向传原创 2022-04-23 16:46:25 · 1045 阅读 · 0 评论 -
进程和线程
文章目录1.线程的基本概念2.线程的好处3.进程的概念4.进程的基本状态及状态之间的关系5.线程和进程的关系以及区别?6.引用1.线程的基本概念线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。2.线程的好处(1)易于调度。(2)提高并发性。通过线程可方便有效地实现并发性。进程可原创 2022-04-23 09:40:07 · 161 阅读 · 0 评论