Resnet モデル ノートの概要

リセネット18

レイヤー1

ResNet 18、BasicBlock を使用。Layer1、ダウンサンプリングなし、畳み込み層のストライド = 1、ダウンサンプリングなしを特徴とします。したがって、画像のサイズは変更されず、チャンネル数も 64 に変更されません。**ショートカット接続中は、ダウンサンプル レイヤーは渡されません。(この時のXはlayer1以降の画像と同じサイズ・寸法なので、レイヤーのダウンサンプルを行う必要はありません)
**
ここに画像の説明を挿入

レイヤー2、レイヤー3、レイヤー4

Layer2、Layer3、Layer4の構造図は以下の通りで、各層には2つのBasicBlockが含まれていますが、最初のBasicBlockの最初の畳み込み層のstride=2がダウンサンプリングされます。ショートカット接続を実行すると、ダウンサンプル層を経由してダウンサンプリングとアップスケーリングが実行されます。ダウンサンプリングとは画像の寸法を同じにすることなので、このときレイヤー画像のサイズは半分になり、チャンネル数も元の64から128に変更されるため、寸法も大きくする必要があります。
ここに画像の説明を挿入

Rsenet50

チャンネル数を変更し、画像サイズを変更します。具体的には、conv1x1 -> norm_layer を含むダウンサンプル層が確立されます。
つまり、ショートカットがジャンプすると、ダウンサンプル サブサンプリング レイヤーが実行されます。

レイヤー1

Layer1 では、まず最初のボトルネックはアップスケーリングのみを実行し、ダウンサンプリングは実行しません。つまり、ピクチャのサイズは同じですが、チャンネル数が増加し、ショートカットが接続される前に、ダウンサンプル レイヤーによって処理されます。2 番目のボトルネックのショートカット接続は、ダウンサンプル層を経由しません。
ここに画像の説明を挿入

レイヤー2、レイヤー3、レイヤー4

Layer2、Layer3、Layer4の構造図は以下の通りで、各層には複数のボトルネックが含まれていますが、最初のボトルネックの畳み込み層のストライド=2がダウンサンプリングされます。ショートカット接続を実行すると、ダウンサンプリングとアップスケーリングのためにダウンサンプル層を経由します。
ここに画像の説明を挿入

ベーシックブロック

最初のグループ conv3x3 -> norm_layer -> relu を定義します。ここでは、受信する stride と inplanes を使用します。(layer2、layer3、layer4 の最初の BasicBlock の場合、stride=2、ここでダウンサンプリングしてチャネル数を変更します)

conv3x3 -> norm_layer -> relu の 2 番目のグループを定義します。ここでは受信ストライドは使用されません (デフォルトは 1)。入力チャネルの数と出力チャネルの数はプレーンを使用します。つまり、ダウンサンプリングする必要はありません。チャンネル数を変更します。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ボトルネック

conv1x1 -> Norm_layer の最初のグループを定義します。ここでは、入力ストライドを使用せず、幅を使用します。この機能は、次元を削減し、チャネル数を減らすことです。
conv3x3 -> Norm_layer の 2 番目のグループを定義します。ここでは、入力ストライド、入力チャネルの数、および幅を使用する出力チャネルの数を使用します。(レイヤー 2、レイヤー 3、レイヤー 4 の最初のボトルネックの場合、ストライド = 2、ここでダウンサンプリングされます)。
3 番目のグループ conv1x1 -> Norm_layer を定義します。ここでは入力ストライドを使用せず、planes * self.expansion を使用します。関数は次元を増やし、チャネル数を増やすことです。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

Supongo que te gusta

Origin blog.csdn.net/weixin_45942265/article/details/126212700
Recomendado
Clasificación