之前,对SSD的论文进行了解读,可以回顾之前的博客:https://www.cnblogs.com/dengshunge/p/11665929.html。 为了加深对SSD的理解,因此对SSD的源码进行了复现,主要参考的github项目是ssd.pytorch。同时,我自己对该项目增加了大量注释 ...
Fork版本项目地址:SSD 一 损失函数介绍 SSD损失函数分为两个部分:对应搜索框的位置loss loc 和类别置信度loss conf 。 搜索框指网络生成的网格 详细的说明如下: i指代搜索框序号,j指代真实框序号,p指代类别序号,p 表示背景, 中取 表示此时第i个搜索框和第j个类别框IOU大于阈值,此时真实框中对象类别为p。 cip表示第i个搜索框对应类别p的预测概率。 二 分类损失函 ...
2018-07-23 19:12 3 8644 推荐指数:
之前,对SSD的论文进行了解读,可以回顾之前的博客:https://www.cnblogs.com/dengshunge/p/11665929.html。 为了加深对SSD的理解,因此对SSD的源码进行了复现,主要参考的github项目是ssd.pytorch。同时,我自己对该项目增加了大量注释 ...
Fork版本项目地址:SSD 一、输入标签生成 在数据预处理之后,图片、类别、真实框格式较为原始,不能够直接作为损失函数的输入标签(ssd向前网络只需要图像就行,这里的处理主要需要满足loss的计算),对于一张图片(三维CHW)我们需要如下格式的数据作为损失函数标签: gclasse ...
Fork版本项目地址:SSD 作者使用了分布式训练的写法,这使得训练部分代码异常臃肿,我给出了部分注释。我对于多机分布式并不很熟,而且不是重点,所以不过多介绍,简单的给出一点训练中作者的优化手段,包含优化器选择之类的。 一、滑动平均 # =================================================================== ...
Fork版本项目地址:SSD 参考自集智专栏 一、SSD基础 在分类器基础之上想要识别物体,实质就是 用分类器扫描整张图像,定位特征位置 。这里的关键就是用什么算法扫描,比如可以将图片分成若干网格,用分类器一个格子、一个格子扫描,这种方法有几个问题: 问题1 : 目标正好 ...
1.损失函数---------经典损失函数--------交叉熵:交叉熵刻画了两个概率分布之间的距离,它是分类问题中使用比较广的一种损失函数。通过q来表示p的交叉熵为: Softmax将神经网络前向传播得到的结果变成概率分布,原始神经网络的输出被用作置信度来生成新的输出,而新的输出满足 ...
交叉熵损失: 给定两个概率分布p和q,通过q来表示p的交叉熵为: 从上述公式可以看出交叉熵函数是不对称的,即H(p,q)不等于H(q,p)。 交叉熵刻画的是两个概率分布之间的距离,它表示通过概率分布q来表示概率分布p的困难程度。所以使用交叉熵作为 神经网络的损失函数时,p代表的是正确答案 ...
损失算法的选取 损失函数的选取取决于输入标签数据的类型: 如果输入的是实数、无界的值,损失函数使用平方差; 如果输入标签是位矢量(分类标志),使用交叉熵会更适合。 1.均值平方差 在TensorFlow没有单独的MSE函数,不过由于公式比较简单,往往开发者都会 ...
Fork版本项目地址:SSD 上一节中我们定义了vgg_300的网络结构,实际使用中还需要匹配SSD另一关键组件:被选取特征层的搜索网格。在项目中,vgg_300网络和网格生成都被统一进一个class中,我们从class SSDNet开始谈起。 一、初始化class SSDNet 这是 ...