一.误差值 度量两个张量或者一个张量和零之间的损失误差,这个可用于在一个回归任务或者用于正则的目的(权重衰减). l2_loss tf.nn.l2_loss(t, name=None) 解释:这个函数的作用是利用 L2 范数来计算张量的误差值,但是没有开方并且只取 L2 范数的值的一半,具体如下: output = sum(t ** 2) / 2 输入参数: t: 一个Tensor.数据类型必须是一下之一:float32,float64,int64,int32,uint8,int16,int8,…
简书翻译原文 卷积层 卷积操作是使用一个二维的卷积核在一个批处理的图片上进行不断扫描.具体操作是将一个卷积核在每张图片上按照一个合适的尺寸在每个通道上面进行扫描.为了达到好的卷积效率,需要在不同的通道和不同的卷积核之间进行权衡. 三个卷积函数: conv2d: 任意的卷积核,能同时在不同的通道上面进行卷积操作. depthwise_conv2d: 卷积核能相互独立的在自己的通道上面进行卷积操作. separable_conv2d: 在纵深卷积 depthwise filter 之后进行逐点卷积…
一.优化器基类介绍 标注一点,优化器中的学习率可以是tensor,这意味着它可以feed, learning_rate: A Tensor or a floating point value. 正常使用流程: 创建优化器对象 -> 指定最小化loss & 可优化参数 -> runminimize实际包含两个操作:首先计算梯度,然后更新可训练参数. 非标准化操作: 希望计算出梯度之后 - > 人工处理梯度 -> 优化参数, 使用两个新的函数取代minimize: # 创建一个…
一.论文介绍 读论文系列:Object Detection ECCV2016 SSD 一句话概括:SSD就是关于类别的多尺度RPN网络 基本思路: 基础网络后接多层feature map 多层feature map分别对应不同尺度的固定anchor 回归所有anchor对应的class和bounding box 网络结构简介 输入:300x300 经过VGG-16(只到conv4_3这一层) 经过几层卷积,得到多层尺寸逐渐减小的feature map 每层feature map分别做3x3卷积,…
Fork版本项目地址:SSD 一.TFR数据读取 创建slim.dataset.Dataset对象 在train_ssd_network.py获取数据操作如下,首先需要slim.dataset.Dataset对象 # Select the dataset. # 'imagenet', 'train', tfr文件存储位置 # TFR文件命名格式:'voc_2012_%s_*.tfrecord',%s使用train或者test dataset = dataset_factory.get_datas…
Fork版本项目地址:SSD 参考自集智专栏 一.SSD基础 在分类器基础之上想要识别物体,实质就是 用分类器扫描整张图像,定位特征位置 .这里的关键就是用什么算法扫描,比如可以将图片分成若干网格,用分类器一个格子.一个格子扫描,这种方法有几个问题: 问题1 : 目标正好处在两个网格交界处,就会造成分类器的结果在两边都不足够显著,造成漏报(True Negative). 问题2 : 目标过大或过小,导致网格中结果不足够显著,造成漏报. 针对第一点,可以采用相互重叠的网格.比如一个网格大小是 32…
Fork版本项目地址:SSD 作者使用了分布式训练的写法,这使得训练部分代码异常臃肿,我给出了部分注释.我对于多机分布式并不很熟,而且不是重点,所以不过多介绍,简单的给出一点训练中作者的优化手段,包含优化器选择之类的. 一.滑动平均 # =================================================================== # # Configure the moving averages. # ==========================…
Fork版本项目地址:SSD 一.数据格式介绍 数据文件夹命名为VOC2012,内部有5个子文件夹,如下, 我们的检测任务中使用JPEGImages文件夹和Annotations文件夹. JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片. 这些图像都是以“年份_编号.jpg”格式命名的. 图片的像素尺寸大小不一,但是横向图的尺寸大约在500*375左右,纵向图的尺寸大约在375*500左右,基本不会偏差超过100.(在之后的训练中,第一步就是…
Fork版本项目地址:SSD 上一节中我们定义了vgg_300的网络结构,实际使用中还需要匹配SSD另一关键组件:被选取特征层的搜索网格.在项目中,vgg_300网络和网格生成都被统一进一个class中,我们从class SSDNet开始谈起. 一.初始化class SSDNet 这是SSDNet的初始化部分,这一部分的内容在上一节都提到过了:网络超参数定义 & 初始化vgg_300网络结构并更新feat_shapes [注1]:feat_shapes更新之前每一元素是二维元组(HW),更新之后…
Fork版本项目地址:SSD 一.损失函数介绍 SSD损失函数分为两个部分:对应搜索框的位置loss(loc)和类别置信度loss(conf).(搜索框指网络生成的网格) 详细的说明如下: i指代搜索框序号,j指代真实框序号,p指代类别序号,p=0表示背景, 中取1表示此时第i个搜索框和第j个类别框IOU大于阈值,此时真实框中对象类别为p. cip表示第i个搜索框对应类别p的预测概率. 二.分类损失函数 有了上图的分析,我们可以看具体实现了,首先我们看Lconf部分的计算,其分为最大化第一个累加…