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:布林值,是否重新縮放輸入。如果設定為 True,輸入將會通過一個 Rescaling(1/255.0) 層。
  • 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:字串列表。每個值根據所需的塊是 'unfused' 或 'fused'。FusedMBConvBlock 類似於 MBConvBlock,但 fused 塊使用單個 3x3 卷積塊,而不是使用深度卷積和 1x1 輸出卷積塊。
  • skip_connection_dropout:浮點數,跳躍連接的 dropout 比率。
  • depth_divisor:整數,網路寬度的單位。
  • min_depth:整數,最小過濾器數量。
  • 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:字串。 必須是 "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-style 架構。此 B-style 模型具有 width_coefficient=1.0depth_coefficient=1.0
efficientnetv2_b1 6.93M 具有 6 個卷積塊的 EfficientNet B-style 架構。此 B-style 模型具有 width_coefficient=1.0depth_coefficient=1.1
efficientnetv2_b2 8.77M 具有 6 個卷積塊的 EfficientNet B-style 架構。此 B-style 模型具有 width_coefficient=1.1depth_coefficient=1.2
efficientnetv2_b3 12.93M 具有 7 個卷積塊的 EfficientNet B-style 架構。此 B-style 模型具有 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-style 架構。此 B-style 模型具有 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-style 架構。此 B-style 模型具有 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-style 架構。此 B-style 模型具有 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:布林值,是否重新縮放輸入。如果設定為 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:布林值,是否重新縮放輸入。如果設定為 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:布林值,是否重新縮放輸入。如果設定為 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:布林值,是否重新縮放輸入。如果設定為 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:布林值,是否重新縮放輸入。如果設定為 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:布林值,是否重新縮放輸入。如果設定為 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:布林值,是否重新縮放輸入。如果設定為 True,輸入將會通過一個 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:選擇性的 Keras 張量(即 layers.Input() 的輸出),用作模型的圖像輸入。