日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

【深度学习】9 大主题卷积神经网络(CNN)的 PyTorch 实现

發布時間:2025/3/8 卷积神经网络 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【深度学习】9 大主题卷积神经网络(CNN)的 PyTorch 实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家還記得這張圖嗎?

之前,紅色石頭發文介紹過一份很不錯的資源:

52 個深度學習目標檢測模型匯總,論文、源碼一應俱全!

深度系統介紹了 52 個目標檢測模型,縱觀 2013 年到 2020 年,從最早的 R-CNN、OverFeat 到后來的 SSD、YOLO v3 再到去年的 M2Det,新模型層出不窮,性能也越來越好!

上文聚焦于源碼和論文,對于各種卷積神經網絡模型的實現,本文將介紹它們的 PyTorch 實現,非常有用!

這份資源已經開源在了 GitHub 上,鏈接如下:

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

先來個總結介紹,該系列的卷積神經網絡實現包含了 9 大主題,目錄如下:

1. 典型網絡

2.?輕量級網絡

3.?目標檢測網絡

4.?語義分割網絡

5.?實例分割網絡

6.?人臉檢測和識別網絡

7.?人體姿態識別網絡

8.?注意力機制網絡

9.?人像分割網絡

下面具體來看一下:

1. 典型網絡(Classical network)

典型的卷積神經網絡包括:AlexNet、VGG、ResNet、InceptionV1、InceptionV2、InceptionV3、InceptionV4、Inception-ResNet。

以 AlexNet 網絡為例,AlexNet 是 2012 年 ImageNet 競賽冠軍獲得者 Hinton 和他的學生 Alex Krizhevsky 設計的。AlexNet 中包含了幾個比較新的技術點,也首次在 CNN 中成功應用了 ReLU、Dropout 和 LRN 等 Trick。同時 AlexNet 也使用了 GPU 進行運算加速。

AlexNet 網絡結構的 PyTorch 實現方式如下:

import torch import 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//2self.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。

以 GhostNet 為例,同樣精度,速度和計算量均少于此前 SOTA 算法。GhostNet 的核心是 Ghost 模塊,與普通卷積神經網絡相比,在不更改輸出特征圖大小的情況下,其所需的參數總數和計算復雜度均已降低,而且即插即用。

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。

以 YOLO 系列為例,YOLO(You Only Look Once)是一種基于深度神經網絡的對象識別和定位算法,其最大的特點是運行速度很快,可以用于實時系統。目前 YOLOv3 應用比較多。

YOLOV3?網絡結構的 PyTorch 實現方式如下:

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

4.?語義分割網絡(SemanticSegmentation)

語義分割網絡包括:FCN、Fast-SCNN、LEDNet、LRNNet、FisheyeMODNet。

以 FCN 為例,FCN 誕生于 2014 的語義分割模型先驅,主要貢獻為在語義分割問題中推廣使用端對端卷積神經網絡,使用反卷積進行上采樣。FCN 模型非常簡單,里面全部是由卷積構成的,所以被稱為全卷積網絡,同時由于全卷積的特殊形式,因此可以接受任意大小的輸入。

FCN 網絡結構的 PyTorch 實現方式如下:

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

5.?實例分割網絡(InstanceSegmentation)

實例分割網絡包括:PolarMask。

6.?人臉檢測和識別網絡(commit VarGFaceNet)

人臉檢測和識別網絡包括:FaceBoxes、LFFD、VarGFaceNet。

7.?人體姿態識別網絡(HumanPoseEstimation)

人體姿態識別網絡包括:Stacked Hourglass、Networks Simple Baselines、LPN。

8.?注意力機制網絡

注意力機制網絡包括:SE Net、scSE、NL Net、GCNet、CBAM。

9.?人像分割網絡(PortraitSegmentation)

人像分割網絡包括:SINet。

綜上,該 GitHub 開源項目展示了近些年來主流的 9 大類卷積神經網絡,總共包含了幾十種具體的網絡結構。其中每個網絡結構都有 PyTorch 實現方式。還是很不錯的。

最后再放上 GitHub 開源地址:

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

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群請掃碼進群(如果是博士或者準備讀博士請說明):

總結

以上是生活随笔為你收集整理的【深度学习】9 大主题卷积神经网络(CNN)的 PyTorch 实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。