详解YOLOv5中的Bottleneck

深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。

目录

一、背景知识 — 残差结构

二、Bottleneck和building block

三、YOLOv5中的Bottleneck

1、结构分析

2.代码分析(内含注释分析)

一、背景知识 — 残差结构

关于残差以及一些残差网络(eg: Resnet)的分析,可以看一下博主之前写的博客

深度学习之Resnet详解_tt丫的博客-CSDN博客

二、Bottleneck和building block

说到Bottleneck,就会想到他的”兄弟” — building block。Bottleneck和building block其实都是在Resnet中提出的。如下图所示,左边是针对Resnet34提出的building block;右边是针对Resnet50提出的Bottleneck。

详解YOLOv5中的Bottleneck

building block由两个33的卷积层组成,Bottleneck由两个11卷积层夹心一个33卷积层组成:其中11卷积层负责减少然后增加(实际上就是恢复)维数,让3*3卷积层成为输入/输出维数更小的瓶颈。Bottleneck既减少了参数量,又优化了计算,保持了原有的精度。

第一个11的卷积把256维channel降到64维,最后再通过11卷积恢复,整体上用的参数数目为:

1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632

如果不采取瓶颈结构的话(Building block),就是两个3x3x256的卷积,整体上用的参数数目为:

3x3x256x256x2 = 1179648

所以我们也能看出来,如果网络层数少(

Original: https://blog.csdn.net/weixin_55073640/article/details/122588049
Author: tt丫
Title: 详解YOLOv5中的Bottleneck

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/718692/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球