Keras 3 API 文件 / KerasCV / / 正規化層 / SqueezeAndExcite2D 層

SqueezeAndExcite2D 層

[來源]

SqueezeAndExcite2D 類別

keras_cv.layers.SqueezeAndExcite2D(
    filters,
    bottleneck_filters=None,
    squeeze_activation="relu",
    excite_activation="sigmoid",
    **kwargs
)

實作 Squeeze-and-Excitation Networks 中的 Squeeze and Excite 區塊。此層嘗試使用內容感知機制來自適應地分配通道權重。它首先使用全局平均池化將特徵圖壓縮成單一值,然後將其饋送到兩個 Conv1D 層,這兩個層的作用類似於全連接層。第一層減少特徵圖的維度,第二層將其恢復到原始值。

結果值是每個通道的自適應權重。然後將這些權重與原始輸入相乘,以根據其個別權重來調整輸出。

參數

  • filters:輸入和輸出濾波器的數量。輸入和輸出濾波器的數量相同。
  • bottleneck_filters:(選用) 瓶頸濾波器的數量。預設為 0.25 * filters
  • squeeze_activation:(選用) 字串、可呼叫物件 (或 keras.layers.Layer) 或 keras.activations.Activation 實例,表示在壓縮卷積後要套用的激活函數。預設為 relu
  • excite_activation:(選用) 字串、可呼叫物件 (或 keras.layers.Layer) 或 keras.activations.Activation 實例,表示在激勵卷積後要套用的激活函數。預設為 sigmoid

範例

# (...)
input = tf.ones((1, 5, 5, 16), dtype=tf.float32)
x = keras.layers.Conv2D(16, (3, 3))(input)
output = keras_cv.layers.SqueezeAndExciteBlock(16)(x)
# (...)