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つの原則

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

Microsoft の 38 TB の内部データが漏洩!秘密鍵と3万件以上の仕事上の会話が漏洩、その背後にある理由は衝撃的

何か大きなことが起こりました!数か月前、マイクロソフトの AI 研究チームは、大量のオープンソースの...

人工知能がチップのルネッサンスを推進

半導体はデジタル時代の基盤技術です。アメリカのシリコンバレーの名はこれに由来しています。過去半世紀に...

...

数秒で AI を学ぶ - ディープラーニングの一般的な 4 つの活性化関数: シグモイド、Tanh、ReLU、Softmax

ディープラーニングにおける活性化関数は、ニューラル ネットワークの重要なコンポーネントです。活性化関...

OpenAIはAPIのアップグレードと価格引き下げでメジャーアップデートを実施

6月14日、OpenAIは生成型人工知能の分野での競争上の優位性を維持するため、テキスト生成モデルを...

無意味または有害なボットトラフィックは年間最大2億5000万ドルのコストがかかる

Cyber​​news によると、ますます多くの企業が、検出がますます困難になっている悪意のあるボッ...

この記事では人工知能とは何かを徹底的に解説します!

人工知能 (AI) は、自然科学のさまざまな分野を網羅しており、主に特定の種類の知的な人間の活動をモ...

...

...

...

機械学習とディープラーニング、この2つの違いは何でしょうか?

[51CTO.com クイック翻訳] 機械学習とディープラーニング - 両者の類似点と相違点。人工...

覚えておいてください!私たちの未来に影響を与えるのはビッグデータや人工知能ではなくブロックチェーンです!

[[216863]]私たちの未来に影響を与えるそれは「ビッグデータ」でも「モノのインターネット」で...

人工知能の長所と短所について知っておくべき10の事実

[[202058]] 1. 人工知能があなたの仕事を奪いに来ます。自分のキャリアを守るためには、機械...

1 つの記事でポイント クラウドと自動車用 LiDAR の開発を理解しましょう。

01 車載レーザーレーダーのレーザー点群ポイントクラウド技術により、LIDAR イメージングは​​...

10億のパラメータを持つAIモデルSE​​ERは、すべての人を平等に扱い、富裕層と世界に貢献します。

厳選されラベル付けされたデータ セットを使用して AI システムをトレーニングすると、オブジェクト認...