9 大主题卷积神经网络的PyTorch实现是怎样的

发布时间:2021-11-15 15:38:52 作者:柒染
来源:亿速云 阅读:205

9 大主题卷积神经网络的PyTorch实现是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

对于各种卷积神经网络模型的实现,这里将介绍它们的 PyTorch 实现,非常有用!


1. 典型网络(Classical network)

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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

import torchimport torch.nn as nndef Conv3x3BNReLU(in_channels,out_channels,stride,padding=1):    return nn.Sequential(            nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=3, stride=stride, padding=1),            nn.BatchNorm2d(out_channels),            nn.ReLU6(inplace=True)        )def Conv1x1BNReLU(in_channels,out_channels):    return nn.Sequential(            nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=1, stride=1, padding=0),            nn.BatchNorm2d(out_channels),            nn.ReLU6(inplace=True)        )def ConvBNReLU(in_channels,out_channels,kernel_size,stride,padding=1):    return nn.Sequential(            nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, stride=stride, padding=padding),            nn.BatchNorm2d(out_channels),            nn.ReLU6(inplace=True)        )def ConvBN(in_channels,out_channels,kernel_size,stride,padding=1):    return nn.Sequential(            nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, stride=stride, padding=padding),            nn.BatchNorm2d(out_channels)        )class ResidualBlock(nn.Module):    def __init__(self, in_channels, out_channels):        super(ResidualBlock, self).__init__()        mid_channels = out_channels//2        self.bottleneck = nn.Sequential(            ConvBNReLU(in_channels=in_channels, out_channels=mid_channels, kernel_size=1, stride=1),            ConvBNReLU(in_channels=mid_channels, out_channels=mid_channels, kernel_size=3, stride=1, padding=1),            ConvBNReLU(in_channels=mid_channels, out_channels=out_channels, kernel_size=1, stride=1),        )        self.shortcut = ConvBNReLU(in_channels=in_channels, out_channels=out_channels, kernel_size=1, stride=1)    def forward(self, x):        out = self.bottleneck(x)        return out+self.shortcut(x)

2.轻量级网络(Lightweight)

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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。

9 大主题卷积神经网络的PyTorch实现是怎样的

9 大主题卷积神经网络的PyTorch实现是怎样的

9 大主题卷积神经网络的PyTorch实现是怎样的

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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

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

4. 语义分割网络(SemanticSegmentation)

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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

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

5. 实例分割网络(InstanceSegmentation)

实例分割网络包括:PolarMask。

9 大主题卷积神经网络的PyTorch实现是怎样的

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

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

9 大主题卷积神经网络的PyTorch实现是怎样的

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

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

9 大主题卷积神经网络的PyTorch实现是怎样的

8. 注意力机制网络

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

9 大主题卷积神经网络的PyTorch实现是怎样的

9. 人像分割网络(PortraitSegmentation)

人像分割网络包括:SINet。

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

看完上述内容,你们掌握9 大主题卷积神经网络的PyTorch实现是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. 9款极具创意的HTML5/CSS3进度条动画
  2. Oracle系列:(9)三大类型转换

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pytorch

上一篇:使用VMware克隆的centos7虚拟机网卡配置找不到问题怎么办

下一篇:迁Aliyun Redis遇到的坑分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》