cnn stride and padding_9 大主题卷积神经网络(CNN)的 PyTorch 实现

4d5ee140e59df2dfef6a87d75dc02b9f.png

红色石头的个人网站:

红色石头的个人博客-机器学习、深度学习之路​www.redstonewill.com
148cbe8db27634d59cb25791f40be8e4.png

大家还记得这张图吗?

87670afad967c6de76b4bac602e58a84.png

之前,红色石头发文介绍过一份很不错的资源:

52 个深度学习目标检测模型汇总,论文、源码一应俱全!

深度系统介绍了 52 个目标检测模型,纵观 2013 年到 2020 年,从最早的 R-CNN、OverFeat 到后来的 SSD、YOLO v3 再到去年的 M2Det,新模型层出不穷,性能也越来越好!

上文聚焦于源码和论文,对于各种卷积神经网络模型的实现,本文将介绍它们的 PyTorch 实现,非常有用!

这份资源已经开源在了 GitHub 上,链接如下:

https://github.com/shanglianlm0525/PyTorch-Networks​github.com

先来个总结介绍,该系列的卷积神经网络实现包含了 9 大主题,目录如下:

1. 典型网络

2. 轻量级网络

3. 目标检测网络

4. 语义分割网络

5. 实例分割网络

6. 人脸检测和识别网络

7. 人体姿态识别网络

8. 注意力机制网络

9. 人像分割网络

下面具体来看一下:

1. 典型网络(Classical network)

典型的卷积神经网络包括:AlexNet、VGG、ResNet、InceptionV1、InceptionV2、InceptionV3、InceptionV4、Inception-ResNet。

8fb78f4234430869128c38c744834f2b.png

以 AlexNet 网络为例,AlexNet 是 2012 年 ImageNet 竞赛冠军获得者 Hinton 和他的学生 Alex Krizhevsky 设计的。AlexNet 中包含了几个比较新的技术点,也首次在 CNN 中成功应用了 ReLU、Dropout 和 LRN 等 Trick。同时 AlexNet 也使用了 GPU 进行运算加速。

03a530b3873c5430cb3aa9619ea992d8.png

AlexNet 网络结构的 PyTorch 实现方式如下:

import 

2.轻量级网络(Lightweight)

轻量级网络包括:GhostNet、MobileNets、MobileNetV2、MobileNetV3、ShuffleNet、ShuffleNet V2、SqueezeNet Xception MixNet GhostNet。

d6e8709a42e949eca7022a8ace78d584.png

以 GhostNet 为例,同样精度,速度和计算量均少于此前 SOTA 算法。GhostNet 的核心是 Ghost 模块,与普通卷积神经网络相比,在不更改输出特征图大小的情况下,其所需的参数总数和计算复杂度均已降低,而且即插即用。

c1f7c85801d56c0418a960c45c3d4fd8.png

GhostNet 网络结构的 PyTorch 实现方式如下:

https://github.com/shanglianlm0525/PyTorch-Networks/blob/master/Lightweight/GhostNet.py

3. 目标检测网络(ObjectDetection)

目标检测网络包括:SSD、YOLO、YOLOv2、YOLOv3、FCOS、FPN、RetinaNet Objects as Points、FSAF、CenterNet FoveaBox。

59f01c56b144ddc7620f938ab436cc22.png

a239864b1c0bde0ab71f3d33a392a2ad.png

60ff9d1a4983bfc83bb4a52e5981f3b6.png

以 YOLO 系列为例,YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。目前 YOLOv3 应用比较多。

a2749a8f226d75b32405f8cb5792c3a5.png

YOLOV3 网络结构的 PyTorch 实现方式如下:

https://github.com/shanglianlm0525/PyTorch-Networks/blob/master/ObjectDetection/YOLOv3.py

4. 语义分割网络(SemanticSegmentation)

语义分割网络包括:FCN、Fast-SCNN、LEDNet、LRNNet、FisheyeMODNet。

3b98fb798832df1de648127ae83d665b.png

以 FCN 为例,FCN 诞生于 2014 的语义分割模型先驱,主要贡献为在语义分割问题中推广使用端对端卷积神经网络,使用反卷积进行上采样。FCN 模型非常简单,里面全部是由卷积构成的,所以被称为全卷积网络,同时由于全卷积的特殊形式,因此可以接受任意大小的输入。

d20983c68dcb8a09c5c003b1950adfff.png

FCN 网络结构的 PyTorch 实现方式如下:

https://github.com/shanglianlm0525/PyTorch-Networks/blob/master/SemanticSegmentation/FCN.py

5. 实例分割网络(InstanceSegmentation)

实例分割网络包括:PolarMask。

0db5a4bebb10d76e846e09198b2f5bd5.png

6. 人脸检测和识别网络(commit VarGFaceNet)

人脸检测和识别网络包括:FaceBoxes、LFFD、VarGFaceNet。

a1952945f7e92e581e54ec72666fd14c.png

7. 人体姿态识别网络(HumanPoseEstimation)

人体姿态识别网络包括:Stacked Hourglass、Networks Simple Baselines、LPN。

8ce9f23ee2a5081efbc3c28e1c58a978.png

8. 注意力机制网络

注意力机制网络包括:SE Net、scSE、NL Net、GCNet、CBAM。

41be66213afd60ac460fcc1d709b4d7c.png

9. 人像分割网络(PortraitSegmentation)

人像分割网络包括:SINet。

综上,该 GitHub 开源项目展示了近些年来主流的 9 大类卷积神经网络,总共包含了几十种具体的网络结构。其中每个网络结构都有 PyTorch 实现方式。还是很不错的。

最后再放上 GitHub 开源地址:

https://github.com/shanglianlm0525/PyTorch-Networks​github.com

本文首发于公众号:AI有道(ID: redstonewill),欢迎关注!

4e1f422db86ad7c8bac83ff2b075b694.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值