9 トピック PyTorch での畳み込みニューラル ネットワーク (CNN) の実装

9 トピック PyTorch での畳み込みニューラル ネットワーク (CNN) の実装

この写真をまだ覚えていますか?

ディープシステムでは、52 個のオブジェクト検出モデルが導入されています。2013 年から 2020 年までを振り返ると、初期の R-CNN である OverFeat から、その後の SSD、YOLO v3、昨年の M2Det まで、新しいモデルが次々と登場し、パフォーマンスはますます向上しています。

上記はソースコードと論文に焦点を当てています。さまざまな畳み込みニューラルネットワークモデルの実装については、この記事で非常に役立つ PyTorch 実装を紹介します。

このリソースは GitHub でオープンソース化されており、リンクは次のとおりです。

https://github.com/shanglianlm0525/PyTorch-ネットワーク

まずは要約から始めましょう。このシリーズの畳み込みニューラル ネットワークの実装には、次の 9 つの主要なトピックが含まれます。

1. 典型的なネットワーク

2. 軽量ネットワーク

3. 物体検出ネットワーク

4. セマンティックセグメンテーションネットワーク

5. インスタンスセグメンテーションネットワーク

6. 顔検出および認識ネットワーク

7. 人間の姿勢認識ネットワーク

8. 注意メカニズムネットワーク

9. ポートレートセグメンテーションネットワーク

詳しく見てみましょう:

1. 古典的なネットワーク

一般的な畳み込みニューラル ネットワークには、AlexNet、VGG、ResNet、InceptionV1、InceptionV2、InceptionV3、InceptionV4、Inception-ResNet などがあります。

AlexNet ネットワークを例に挙げてみましょう。AlexNet は、2012 年の ImageNet コンテストで優勝した Hinton 氏と彼の学生 Alex Krizhevsky 氏によって設計されました。 AlexNet には比較的新しいテクノロジーがいくつか含まれており、ReLU、Dropout、LRN などのトリックが CNN に初めて適用されました。同時に、AlexNet はコンピューティングの高速化に GPU も使用します。

AlexNet ネットワーク構造の PyTorch 実装は次のとおりです。

  1. 輸入トーチ 
  2. torch.nnをnnとしてインポートする 
  3. def Conv3x3BNReLU(in_channels,out_channels,stride, padding = 1 ):  
  4. nn.Sequential() を返す 
  5. nn.Conv2d( in_channels in_channels = in_channels, out_channels out_channels = out_channels, kernel_size = 3 , stride stride = stride, padding = 1 ),  
  6. nn.BatchNorm2d(out_channels)、  
  7. nn.ReLU6(インプレース= True )
  8.  
  9. Conv1x1BNReLU(in_channels,out_channels)を定義します。  
  10. nn.Sequential() を返す 
  11. nn.Conv2d( in_channels in_channels = in_channels, out_channels out_channels = out_channels, kernel_size = 1 ,ストライド= 1 ,パディング= 0 ),  
  12. nn.BatchNorm2d(out_channels)、  
  13. nn.ReLU6(インプレース= True )  
  14.  
  15. def ConvBNReLU(in_channels,out_channels,kernel_size,stride, padding = 1 ):  
  16. nn.Sequential() を返す
  17. nn.Conv2d( in_channels in_channels = in_channels、 out_channels out_channels = out_channels、 kernel_size kernel_size = kernel_size、 stride stride = stride、 padding padding = padding)、
  18. nn.BatchNorm2d(out_channels)、
  19. nn.ReLU6(インプレース= True )  
  20.  
  21. def ConvBN(in_channels,out_channels,kernel_size,stride,パディング= 1 ):  
  22. nn.Sequential() を返す 
  23. nn.Conv2d( in_channels in_channels = in_channels、 out_channels out_channels = out_channels、 kernel_size kernel_size = kernel_size、 stride stride = stride、 padding padding = padding)、
  24. nn.BatchNorm2d(out_channels)  
  25.  
  26. クラス ResidualBlock(nn.Module):  
  27. def __init__(self, in_channels, out_channels):  
  28. super(ResidualBlock, self).__init__()  
  29. mid_channels = out_channels //2  
  30. 自己.ボトルネック= nn.シーケンシャル(  
  31. ConvBNReLU( in_channels in_channels =in_channels, out_channels = mid_channels , kernel_size = 1 , stride = 1 ),  
  32. ConvBNReLU( in_channels = mid_channels out_channels = mid_channels kernel_size = 3 stride = 1 padding = 1 )、  
  33. ConvBNReLU( in_channels = mid_channels out_channels out_channels = out_channels 、 kernel_size = 1 stride = 1 )、  
  34.  
  35. self.shortcut = ConvBNReLU ( in_channels in_channels =in_channels、 out_channels out_channels =out_channels、 kernel_size = 1 stride = 1 )  
  36. def forward(self, x):  
  37. アウト=自己.ボトルネック(x)  
  38. out+self.shortcut(x) を返す

2. 軽量ネットワーク

軽量ネットワークには、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. 物体検出ネットワーク

ターゲット検出ネットワークには、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. セマンティックセグメンテーション

セマンティック セグメンテーション ネットワークには、FCN、Fast-SCNN、LEDNet、LRNNet、FisheyeMODNet が含まれます。

FCN を例に挙げましょう。FCN は 2014 年に誕生したセマンティック セグメンテーション モデルの先駆者です。その主な貢献は、セマンティック セグメンテーションの問題でエンドツーエンドの畳み込みニューラル ネットワークの使用を促進し、アップサンプリングにデコンボリューションを使用することです。 FCN モデルは非常にシンプルで、すべて畳み込みで構成されているため、完全畳み込みネットワークと呼ばれます。同時に、完全畳み込みの特殊な形式により、任意のサイズの入力を受け入れることができます。

FCN ネットワーク構造の PyTorch 実装は次のとおりです。

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

5. インスタンスのセグメンテーション

インスタンス セグメンテーション ネットワークには、PolarMask が含まれます。

6. 顔検出および認識ネットワーク(コミット VarGFaceNet)

顔検出および認識ネットワークには、FaceBoxes、LFFD、VarGFaceNet が含まれます。

7. 人間の姿勢推定

人間の姿勢認識ネットワークには、Stacked Hourglass、Networks Simple Baselines、LPN などがあります。

8. 注意メカニズムネットワーク

注意メカニズム ネットワークには、SE Net、scSE、NL Net、GCNet、CBAM などがあります。

9. ポートレートセグメンテーションネットワーク

ポートレートセグメンテーションネットワークには、SINet が含まれます。

要約すると、この GitHub オープンソース プロジェクトは、合計で数十の特定のネットワーク構造を含む、近年人気を集めている畳み込みニューラル ネットワークの 9 つの主要なカテゴリを示しています。これらのネットワーク構造にはそれぞれ PyTorch 実装があります。それでもとても良いです。

<<:  AI専門家が警告:GPT-3は素晴らしいが透明性に欠ける

>>:  スマートホームシステム設計の5つの原則

ブログ    
ブログ    

推薦する

人工知能について知っておくべきことすべて

人工知能は今日最も話題になっている技術の一つです。しかし、それは正確には何でしょうか?なぜ気にする必...

Weilingsi チームは、グラフ同型性の下での同変性と高い計算効率を備えた「自然グラフ ネットワーク」メッセージ パッシング メソッドを提案しました。

最近、ウェリングスチームによる研​​究では、グラフの局所的な対称性を研究することで新しいアルゴリズム...

ディープラーニングに基づく画像マッチング技術の概要

画像マッチング応用:ターゲット認識、ターゲット追跡、超解像度画像再構成、視覚ナビゲーション、画像ステ...

マスク氏はまたも常識に反する発言をしました。自動運転は普及初期段階では渋滞を増加させるでしょう。

自動運転の普及初期には交通渋滞が悪化するだろう。これは、自動運転についてのあなたの理解と異なりますか...

...

NVIDIA は 3 か月で 800 トンの H100 を販売しました。黄氏が1兆ドル規模のGPU覇者の「3つのノー」戦略を明かす

今年の第 2 四半期だけで、Nvidia は 816 トンの H100 を販売しました。同じペースで...

10行のPythonコードで画像認識

[[226981]]ディープラーニングアルゴリズムの台頭と普及により、人工知能の分野、特にコンピュー...

...

AIopsにおける人工知能

組織にとって、機械学習 (ML)、自動化、人工知能 (AI) 機能を備えたテクノロジー プラットフォ...

テクノロジーフロンティア | 昆虫はIoT AIの未来となるか?

研究者たちは、特定の昆虫の神経系の機能が、決定論的、確率的、揮発性、不揮発性メモリの機能とどのように...

データベース設計: MySQL フィールド名がキーワードと衝突するのを防ぎ、データの整合性を保護します。

MySQL は広く使用されているリレーショナル データベース管理システムです。データベース設計では...

...

CPUのみを使用して自律航行船を開発、実際に実現

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

データセキュリティリスクのため、米国宇宙軍はChatGPTなどの人工知能ツールの使用を一時停止

ロイターが確認したメモによると、10月12日、米宇宙軍はデータセキュリティに関する懸念から、職員によ...

...