yolov2中的reorg网络层数据理解
yolov2的reorg数据理解
以上是yolov2的reorg层在整个yolov2网络的示意图。yolov2的reorg层的输入是38x38x64=92416,通过reorg重组得到输出19x19x256。本文需要理解的是reorg是如何重组的。
1.reorg的darknet代码
2. 根据程序理解矩阵重组
本文只考虑长、宽、通道维度上的变化过程。
(1) 根据yolov2中的参数,可以得到reorg层:stride=2, in_c=64, [out_w, out_h, out_c]=[19, 19, 256]。下图中的14x14代表yolov2的输入38x38, 7x7代表yolov2的19x19。
1) 假设k=0, j=0, 则c2=0, offset=0
i=0 | w2=0, h2=0 | |||
i=1 | w2=2, h2=0 | |||
i=2 | w2=4, h2=0 | |||
i=3 | w2=6, h2=0 | |||
... |
2) k=0,j=1,则c2=0,offset=0
i=0 | w2=0, h2=2 | |||
i=1 | w2=2, h2=2 | |||
i=2 | w2=4, h2=2 | |||
i=3 | w2=6, h2=2 | |||
... |
j=0,1 | 填充输出的一个通道结果 |
(2) 第二部分的推导,stride=2, in_c=64, [out_w, out_h, out_c]=[19, 19, 256]
1) k=64, j=0, 则c2=0, offset=1
i=0 | w2=1, h2=0 | |||
i=1 | w2=3, h2=0 | |||
i=2 | w2=5, h2=0 | |||
i=3 | w2=7, h2=0 | |||
... |
2)k=64,j=1, c2=0, offset=1
i=0 | w2=1, h2=2 | |||
i=1 | w2=3, h2=2 | |||
i=2 | w2=5, h2=2 | |||
i=3 | w2=7, h2=2 | |||
… |
通道64的填充 |
(3) 第三部分推导,stride=2, in_c=64, [out_w, out_h, out_c]=[19, 19, 256]
1)k=128, j=0, 则c2=0, offset=2
i=0 | w2=0, h2=1 | |||
i=1 | w2=2, h2=1 | |||
i=2 | w2=4, h2=1 | |||
i=3 | w2=6, h2=1 | |||
… |
2) k=128, j=1, c2=0,offset=2
i=0 | w2=0, h2=3 | |||
i=1 | w2=2, h2=3 | |||
i=2 | w2=4, h2=3 | |||
i=3 | w2=6, h2=3 | |||
… |
k=128通道的填充 |
3)k=192,j=0,则c2=0, offset=3
i=0 | w2=1, h2=1 | |||
i=1 | w2=3, h2=1 | |||
i=2 | w2=5, h2=1 | |||
i=3 | w2=7, h2=1 | |||
… |
4) k=192, j=1,则c2=0, offset=3
i=0 | w2=1, h2=3 | |||
i=1 | w2=3, h2=3 | |||
i=2 | w2=5, h2=3 | |||
i=3 | w2=7, h2=3 | |||
… |
输入的第一个通道在输出中的数据分布 |
yolov2中的reorg网络层数据理解相关推荐
- 网络游戏运营中的数据理解及流量转化
网络游戏运营中数据的作用不可忽视,从商业理解到数据理解的过程中,各类数据将游戏运营规律和现象,以独特的方式呈现,尝试从基础概念的简要说明. 网络游戏运营过程是一个用户行为转化的过程,从用户行为操作角度 ...
- YOLOV3中Darknet中cfg文件说明和理解
darknet 是由 C 和 CUDA 开发的,不需要配置其他深度学习的框架(如,tensorflow.caffe 等),支持 CPU 和 GPU 运算,而且安装过程非常简单. 1.cfg文件说明理解 ...
- python中不同类型的数据不能相互运算_python数据类型和运算
常见数据类型和运算 1 变量的命名规范 '''只能以字母,数字,下划线组成,不能以数字开头.命名时 避免与系统关键字重复,关键字:['and', 'as', 'assert', 'break', 'c ...
- 图像间距pitch是什么?(linesize、stride)(指图像中的一行图像数据所占的存储空间的长度)
width 图像的宽度,就是像素的个数 间距(pitch) 在图像数据传输和显示的过程中有一个不常用的参数:间距. 它有很多的别名, 在使用d3d(Direct3D,是微软为提高3D游戏在Window ...
- 小程序中神秘的用户数据
前面 上一篇文章手把手教会你小程序登录鉴权介绍了小程序如何进行登录鉴权,那么一般小程序的用户标识可以使用上文所述微信提供的jscode2session接口来换取,小程序还提供了一个getUserInf ...
- MVC架构中的Repository模式 个人理解
关于MVC架构中的Repository模式 个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提 ...
- java中怎么使用json数据_JAVA中使用JSON进行数据传递
1.是不是只有xml传递数据的技术才是webservice? 可以这么理解.webservice是基于SOAP协议,SOAP协议是基于XML的文本协议.所以webservice可以简单理解为是基于XM ...
- mysql重命名数据表称方式_在MySQL中,使用()重命名数据表。_学小易找答案
[单选题]( )的上海文坛被称为"张爱玲年". [多选题]下列哪些是属于共集放大电路的特点?() [阅读理解]Passage Two Thailand is to ban smok ...
- vue定时ajax获取数据,vue 中使用 AJAX获取数据的方法
在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: new Vue({ el:'#app', data:{data:&qu ...
最新文章
- iOS 10、Xcode 8 遇到部分问题解决记录(包括控制台日志不输出)
- css 引用otf文件,CSS-如何将OTF / TTF文件转换为EOT格式?
- Oracle Sequence用plsql修改
- 从决策树学习谈到贝叶斯分类算法
- 怎么在图片上面加个div层,让它浮于图片上方
- 内存泄露valgrind
- tspline工具_TSpline2.0海豚建模教程.pdf
- 电脑编程需要下载什么软件吗
- java全栈工程师要求_Java全栈工程师
- 一些快捷键的用法,linux终端操作下
- 【opencv】动态背景下运动目标检测 SURF配准差分
- Linux的10个彩蛋
- 关于下拉框select和option默认值选定
- java 修饰符 详解,详解Java修饰符
- freeSWITCH + WebRTC 音视频会议
- 智力题------小白鼠试毒问题
- 闲来无事,做个了批量看图的页面
- Unity3d 周分享(14期 2019.4.1 )
- 算法学习:高精度加法//c++
- emu0404 PCI 声卡在银河麒麟下成功发声
热门文章
- postgres/pgadmin的使用
- 计算机运行快捷方式,电脑运行快捷键有哪些 电脑运行快捷键介绍
- WebJars简介 —— 前端资源的jar包形式
- 动态规划——1265:【例9.9】最长公共子序列
- MATLAB仪表表盘数字识别解析
- PCIE学习笔记(二)PCIe总线的拓扑结构,协议层,数据传输流程
- 【集训DAY1】Dwarves line up【线段树】
- 技术解读 | 科大讯飞语音技术最新进展之二:语音识别与语音合成
- 什么是招标?招标的组织形式有哪些?
- 用python3实现HDU爬虫(后续可能更新VJ)2016.11.4更新