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)
# (...)