Keras 3 API 文档 / KerasCV / 模型 / 骨干网络 / EfficientNetV2 模型

EfficientNetV2 模型

[来源]

EfficientNetV2Backbone

keras_cv.models.EfficientNetV2Backbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • width_coefficient: float,网络宽度的缩放系数。
  • depth_coefficient: float,网络深度的缩放系数。
  • stackwise_kernel_sizes: int 列表,每个卷积块使用的内核大小。
  • stackwise_num_repeats: int 列表,每个卷积块重复的次数。
  • stackwise_input_filters: int 列表,每个卷积块的输入过滤器数量。
  • stackwise_output_filters: int 列表,卷积块模型中每个堆栈的输出过滤器数量。
  • stackwise_expansion_ratios: float 列表,传递给挤压和激励块的扩展比率。
  • stackwise_squeeze_and_excite_ratios: int 列表,传递给挤压和激励块的挤压和激励比率。
  • stackwise_strides: int 列表,每个卷积块的 stackwise_strides。
  • stackwise_conv_types: string 列表。每个值都是 'unfused' 或 'fused',具体取决于所需的块。FusedMBConvBlock 与 MBConvBlock 类似,但它不使用深度卷积和 1x1 输出卷积块,而是使用单个 3x3 卷积块。
  • skip_connection_dropout: float,跳跃连接的 dropout 率。
  • depth_divisor: integer,网络宽度的单位。
  • min_depth: integer,过滤器的最小数量。
  • activation: 每个卷积层之间使用的激活函数。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 keras.layers.Input() 的输出),用作模型的图像输入。

示例

# Construct an EfficientNetV2 from a preset:
efficientnet = keras_cv.models.EfficientNetV2Backbone.from_preset(
    "efficientnetv2_s"
)
images = tf.ones((1, 256, 256, 3))
outputs = efficientnet.predict(images)

# Alternatively, you can also customize the EfficientNetV2 architecture:
model = EfficientNetV2Backbone(
    stackwise_kernel_sizes=[3, 3, 3, 3, 3, 3],
    stackwise_num_repeats=[2, 4, 4, 6, 9, 15],
    stackwise_input_filters=[24, 24, 48, 64, 128, 160],
    stackwise_output_filters=[24, 48, 64, 128, 160, 256],
    stackwise_expansion_ratios=[1, 4, 4, 4, 6, 6],
    stackwise_squeeze_and_excite_ratios=[0.0, 0.0, 0, 0.25, 0.25, 0.25],
    stackwise_strides=[1, 2, 2, 2, 1, 2],
    stackwise_conv_types=[
        "fused",
        "fused",
        "fused",
        "unfused",
        "unfused",
        "unfused",
    ],
    width_coefficient=1.0,
    depth_coefficient=1.0,
    include_rescaling=False,
)
images = tf.ones((1, 256, 256, 3))
outputs = efficientnet.predict(images)

[来源]

from_preset 方法

EfficientNetV2Backbone.from_preset()

从预设配置和权重实例化 EfficientNetV2Backbone 模型。

参数

  • preset: string。必须是 "efficientnetv2_s"、"efficientnetv2_m"、"efficientnetv2_l"、"efficientnetv2_b0"、"efficientnetv2_b1"、"efficientnetv2_b2"、"efficientnetv2_b3"、"efficientnetv2_s_imagenet"、"efficientnetv2_b0_imagenet"、"efficientnetv2_b1_imagenet"、"efficientnetv2_b2_imagenet" 之一。如果要查找具有预训练权重的预设,请选择 "efficientnetv2_s_imagenet"、"efficientnetv2_b0_imagenet"、"efficientnetv2_b1_imagenet"、"efficientnetv2_b2_imagenet" 之一。
  • load_weights: 是否将预训练权重加载到模型中。默认为 None,它遵循预设是否有可用的预训练权重。

示例

# Load architecture and weights from preset
model = keras_cv.models.EfficientNetV2Backbone.from_preset(
    "efficientnetv2_s_imagenet",
)

# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.EfficientNetV2Backbone.from_preset(
    "efficientnetv2_s_imagenet",
    load_weights=False,
预设名称 参数 描述
efficientnetv2_s 20.33M 具有 6 个卷积块的 EfficientNet 架构。
efficientnetv2_m 53.15M 具有 7 个卷积块的 EfficientNet 架构。
efficientnetv2_l 117.75M 具有 7 个卷积块的 EfficientNet 架构,但比 efficientnetv2_m 中的过滤器更多。
efficientnetv2_b0 5.92M 具有 6 个卷积块的 EfficientNet B 型架构。此 B 型模型具有 width_coefficient=1.0depth_coefficient=1.0
efficientnetv2_b1 6.93M 具有 6 个卷积块的 EfficientNet B 型架构。此 B 型模型具有 width_coefficient=1.0depth_coefficient=1.1
efficientnetv2_b2 8.77M 具有 6 个卷积块的 EfficientNet B 型架构。此 B 型模型具有 width_coefficient=1.1depth_coefficient=1.2
efficientnetv2_b3 12.93M 具有 7 个卷积块的 EfficientNet B 型架构。此 B 型模型具有 width_coefficient=1.2depth_coefficient=1.4
efficientnetv2_s_imagenet 20.33M 具有 6 个卷积块的 EfficientNet 架构。权重初始化为预训练的 ImageNet 分类权重。发布的权重能够在 ImageNet 上获得 83.9% 的 top 1 准确率和 96.7% 的 top 5 准确率。
efficientnetv2_b0_imagenet 5.92M 具有 6 个卷积块的 EfficientNet B 型架构。此 B 型模型具有 width_coefficient=1.0depth_coefficient=1.0。权重初始化为预训练的 ImageNet 分类权重。发布的权重能够在 ImageNet 上获得 77.1% 的 top 1 准确率和 93.3% 的 top 5 准确率。
efficientnetv2_b1_imagenet 6.93M 具有 6 个卷积块的 EfficientNet B 型架构。此 B 型模型具有 width_coefficient=1.0depth_coefficient=1.1。权重初始化为预训练的 ImageNet 分类权重。发布的权重能够在 ImageNet 上获得 79.1% 的 top 1 准确率和 94.4% 的 top 5 准确率。
efficientnetv2_b2_imagenet 8.77M 具有 6 个卷积块的 EfficientNet B 型架构。此 B 型模型具有 width_coefficient=1.1depth_coefficient=1.2。权重初始化为预训练的 ImageNet 分类权重。发布的权重能够在 ImageNet 上获得 80.1% 的 top 1 准确率和 94.9% 的 top 5 准确率。

[来源]

EfficientNetV2B0Backbone

keras_cv.models.EfficientNetV2B0Backbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2B0 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。

[来源]

EfficientNetV2B1Backbone

keras_cv.models.EfficientNetV2B1Backbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2B1 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。

[来源]

EfficientNetV2B2Backbone

keras_cv.models.EfficientNetV2B2Backbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2B2 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。

[来源]

EfficientNetV2B3Backbone

keras_cv.models.EfficientNetV2B3Backbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2B3 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。

[来源]

EfficientNetV2SBackbone

keras_cv.models.EfficientNetV2SBackbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2S 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。

[来源]

EfficientNetV2MBackbone

keras_cv.models.EfficientNetV2MBackbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2M 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。

[来源]

EfficientNetV2LBackbone

keras_cv.models.EfficientNetV2LBackbone(
    include_rescaling,
    width_coefficient,
    depth_coefficient,
    stackwise_kernel_sizes,
    stackwise_num_repeats,
    stackwise_input_filters,
    stackwise_output_filters,
    stackwise_expansion_ratios,
    stackwise_squeeze_and_excite_ratios,
    stackwise_strides,
    stackwise_conv_types,
    skip_connection_dropout=0.2,
    depth_divisor=8,
    min_depth=8,
    activation="swish",
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

实例化 EfficientNetV2L 架构。

参考

参数

  • include_rescaling: bool,是否重新缩放输入。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选 Keras 张量(即 layers.Input() 的输出),用作模型的图像输入。