Keras 3 API 文件 / KerasCV / 模型 / 骨幹網路 / EfficientNetV1 模型

EfficientNetV1 模型

[來源]

EfficientNetV1Backbone 類別

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

實例化 EfficientNetV1 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設定為 True,輸入將通過 Rescaling(1/255.0) 層。
  • width_coefficient:浮點數,網路寬度的縮放係數。
  • depth_coefficient:浮點數,網路深度的縮放係數。
  • dropout_rate:浮點數,最終分類器層之前的丟棄率。
  • drop_connect_rate:浮點數,跳躍連接處的丟棄率。預設值設定為 0.2。
  • depth_divisor:整數,網路寬度單位。預設值設定為 8。
  • activation:每個卷積層之間使用的激活函數。
  • input_shape:可選的形狀元組,它應該正好有 3 個輸入通道。
  • input_tensor:可選的 Keras 張量(即 keras.keras.layers.Input() 的輸出),用作模型的圖像輸入。
  • stackwise_kernel_sizes:整數列表,每個卷積塊使用的核心大小。
  • stackwise_num_repeats:整數列表,每個卷積塊重複的次數。
  • stackwise_input_filters:整數列表,每個卷積塊的輸入濾波器數量。
  • stackwise_output_filters:整數列表,卷積塊模型中每個堆疊的輸出濾波器數量。
  • stackwise_expansion_ratios:浮點數列表,傳遞給擠壓和激勵塊的擴展比率。
  • stackwise_strides:整數列表,每個卷積塊的 stackwise_strides。
  • stackwise_squeeze_and_excite_ratios:整數列表,傳遞給擠壓和激勵塊的擠壓和激勵比率。

範例

# Construct an EfficientNetV1 from a preset:
efficientnet = keras_cv.models.EfficientNetV1Backbone.from_preset(
    "efficientnetv1_b0"
)
images = np.ones((1, 256, 256, 3))
outputs = efficientnet.predict(images)

# Alternatively, you can also customize the EfficientNetV1 architecture:
model = EfficientNetV1Backbone(
    stackwise_kernel_sizes=[3, 3, 5, 3, 5, 5, 3],
    stackwise_num_repeats=[1, 2, 2, 3, 3, 4, 1],
    stackwise_input_filters=[32, 16, 24, 40, 80, 112, 192],
    stackwise_output_filters=[16, 24, 40, 80, 112, 192, 320],
    stackwise_expansion_ratios=[1, 6, 6, 6, 6, 6, 6],
    stackwise_strides=[1, 2, 2, 2, 1, 2, 1],
    stackwise_squeeze_and_excite_ratios=[
        0.25,
        0.25,
        0.25,
        0.25,
        0.25,
        0.25,
        0.25,
    ],
    width_coefficient=1.0,
    depth_coefficient=1.0,
    include_rescaling=False,
)
images = np.ones((1, 256, 256, 3))
outputs = efficientnet.predict(images)

[來源]

from_preset 方法

EfficientNetV1Backbone.from_preset()

從預設配置和權重實例化 EfficientNetV1Backbone 模型。

參數

  • preset:字串。必須是 "efficientnetv1_b0"、"efficientnetv1_b1"、"efficientnetv1_b2"、"efficientnetv1_b3"、"efficientnetv1_b4"、"efficientnetv1_b5"、"efficientnetv1_b6"、"efficientnetv1_b7" 之一。如果要查找具有預先訓練權重的預設值,請選擇 "" 之一。
  • load_weights:是否將預先訓練的權重載入模型。預設為 None,這將遵循預設值是否有可用的預先訓練權重。

範例

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

# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.EfficientNetV1Backbone.from_preset(
    "",
    load_weights=False,
預設名稱 參數 說明
efficientnetv1_b0 4.05M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=1.0depth_coefficient=1.0
efficientnetv1_b1 6.58M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=1.0depth_coefficient=1.1
efficientnetv1_b2 7.77M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=1.1depth_coefficient=1.2
efficientnetv1_b3 10.79M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=1.2depth_coefficient=1.4
efficientnetv1_b4 17.68M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=1.4depth_coefficient=1.8
efficientnetv1_b5 28.52M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=1.6depth_coefficient=2.2
efficientnetv1_b6 40.97M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=1.8depth_coefficient=2.6
efficientnetv1_b7 64.11M 具有 7 個卷積區塊的 EfficientNet B 型架構。此 B 型模型具有 width_coefficient=2.0depth_coefficient=3.1

[來源]

EfficientNetV1B0Backbone 類別

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

實例化 EfficientNetV1B0 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。

[來源]

EfficientNetV1B1Backbone 類別

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

實例化 EfficientNetV1B1 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。

[來源]

EfficientNetV1B2Backbone 類別

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

實例化 EfficientNetV1B2 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。

[來源]

EfficientNetV1B3Backbone 類別

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

實例化 EfficientNetV1B3 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。

[來源]

EfficientNetV1B4Backbone 類別

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

實例化 EfficientNetV1B4 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。

[來源]

EfficientNetV1B5Backbone 類別

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

實例化 EfficientNetV1B5 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。

[來源]

EfficientNetV1B6Backbone 類別

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

實例化 EfficientNetV1B6 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。

[來源]

EfficientNetV1B7Backbone 類別

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

實例化 EfficientNetV1B7 架構。

參考

參數

  • include_rescaling:布林值,是否重新縮放輸入。如果設為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的影像輸入。