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

ブログ    
ブログ    
ブログ    

推薦する

...

GoogleのオープンソースビッグモデルGemmaは何をもたらすのか?「Made in China」のチャンスはすでに到来していることが判明

Google の珍しいオープン AI は、オープンソースのビッグモデルに何をもたらすのでしょうか? ...

テストへの道はどこにあるのでしょうか? YOLOv8 の究極ガイド

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

トリソララン人は救われた!ディープラーニングは三体問題を解決する

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

知能ロボットの主要技術:製造分野の知能化を推進

国家発展改革委員会から最近明らかになったところによると、インターネット、ビッグデータ、人工知能と実体...

中国の人工知能は世界の潮流をリードできるか?

[[389342]] 10年以上前であれば、おそらく多くの人が、将来中国が日本や米国と同じくらい発...

人工知能は企業の調達戦略にどのように適合するのでしょうか?

どの大企業にとっても、調達は日々の業務において重要な役割を果たします。 [[317585]]企業は調...

Cloudera China: データと AI は、企業が「反脆弱性」になるのにどのように役立つのでしょうか?

2023年には、個人にとっても企業にとっても「脆弱性」はほぼ普遍的な状態になります。世界経済が大き...

デジタル時代においてヘルスケアサービスをより良くサポートするにはどうすればよいでしょうか?

アルカテル・ルーセント・エンタープライズの英国ヘルスケア部門責任者であるニール・ハンフリー氏が、デジ...

ブロックチェーンと人工知能、統合開発の「win-winゲーム」

[[259445]]ブロックチェーンと人工知能はどちらも今話題になっています。クールな「ブラックテ...

ディープラーニング入門 - TensorFlow を使ってモデルをトレーニングする方法を教えます

[[206688]]導入Tensorflow はバージョン 1.0 へのアップデート後に多くの新機能...

韓国の常温超伝導チームは重要な技術を隠蔽したのか?アニーリングの詳細がネットユーザーによって暴露され、6つの中国チームが攻撃を開始

昨今、室温超伝導を再現する実験が注目を集めています。 3日間の期限が過ぎ、多くの再現実験で結果が得ら...

TensorRT が顔認識を高速化する方法

[[329844]]顔認識のリアルタイム パフォーマンスを向上させるために、私たちのチームは従来のニ...

冷たい水の入った洗面器! FDAはロボット手術はまだそれほど信頼できないと警告

海外メディアの報道によると、ほとんどの場合、手術対象はブドウではないため、「科学者がブドウの手術を行...