DANetの概要
コードpytorch
が拡張された残差ネットワークを通過した後、特徴マップのサイズは入力画像の1/8になります
1.位置注意モジュール
-
ローカルフィーチャーA(CxHxW)は、B(CxHxW)とC(CxHxW)を生成するために畳み込み層を介して生成され、BとCはCxN(N = HxW)に再形成されます。Cを転置した後、それをBで乗算し、Softmax層を渡します。 S(NxN)
s jiを取得して、j番目の位置に対するi番目の位置の影響を測定します。 -
行列A(CxHxW)は、畳み込み層を介して生成され、D(CxHxW)を生成し、それをCxNに再形成し、DとSの転置を乗算し、結果をCxHxWに再形成し、最後に結果に係数αとAを乗算します。ピクセルごとに追加します。
2.Channelアテンションモジュール
各チャネル図は特定のタイプの応答と見なすことができ、異なるセマンティック応答は互いに関連しています。チャネル間の相互依存を明示的にモデル化するために、チャネルアテンションモジュールを作成しました。
- チャネルフィーチャーマップX(CxC)を直接計算します。まず、AreshapeをCxNに変換し、行列にAの転置とAを乗算します。次に、softmaxを使用してXを取得します(Aの畳み込み演算なし)
x jiは測定に使用されますj番目のチャネルに対するi番目のチャネルの影響。 - XとAの転置の行列乗算を実行し、結果をC×H×Wに再形成します。次に、結果に比例パラメータβを乗算し、Aで要素ごとの合計演算を実行して、最終出力E(C×H×W)を取得します。