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

EfficientNet Lite 骨干网络

[源代码]

EfficientNetLiteBackbone

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

使用给定的缩放系数实例化 EfficientNetLite 架构。

参考

参数

  • include_rescaling:布尔值,是否重新缩放输入。如果设置为 True,则输入将通过 Rescaling(1/255.0) 层。
  • width_coefficient:浮点数,网络宽度的缩放系数。
  • depth_coefficient:浮点数,网络深度的缩放系数。
  • dropout_rate:浮点数,最终分类器层之前的 dropout 率。
  • drop_connect_rate:浮点数,跳跃连接处的 dropout 率。默认值为 0.2。
  • depth_divisor:整数,网络宽度的单位。默认值为 8。
  • activation:激活函数。
  • input_shape:可选的形状元组,它应该正好有 3 个输入通道。
  • input_tensor:可选的 Keras 张量(即 keras.layers.Input() 的输出),用作模型的图像输入。

示例

# Construct an EfficientNetLite from a preset:
efficientnet = models.EfficientNetLiteBackbone.from_preset(
    "efficientnetlite_b0"
)
images = np.ones((1, 256, 256, 3))
outputs = efficientnet.predict(images)

# Alternatively, you can also customize the EfficientNetLite architecture:
model = EfficientNetLiteBackbone(
    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],
    width_coefficient=1.0,
    depth_coefficient=1.0,
    include_rescaling=False,
)
images = np.ones((1, 256, 256, 3))
outputs = model.predict(images)

[源代码]

from_preset 方法

EfficientNetLiteBackbone.from_preset()

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

参数

  • preset:字符串。必须是 "efficientnetlite_b0"、"efficientnetlite_b1"、"efficientnetlite_b2"、"efficientnetlite_b3"、"efficientnetlite_b4" 之一。如果要查找具有预训练权重的预设,请选择 "" 中的一个。
  • load_weights:是否将预训练权重加载到模型中。默认为 None,遵循预设是否提供预训练权重。

示例

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

# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.EfficientNetLiteBackbone.from_preset(
    "",
    load_weights=False,
预设名称 参数 描述
efficientnetlite_b0 3.41M 具有 7 个卷积块的 EfficientNet B 风格架构。此 B 风格模型具有 width_coefficient=1.0depth_coefficient=1.0
efficientnetlite_b1 4.19M 具有 7 个卷积块的 EfficientNet B 风格架构。此 B 风格模型具有 width_coefficient=1.0depth_coefficient=1.1
efficientnetlite_b2 4.87M 具有 7 个卷积块的 EfficientNet B 风格架构。此 B 风格模型具有 width_coefficient=1.1depth_coefficient=1.2
efficientnetlite_b3 6.99M 具有 7 个卷积块的 EfficientNet B 风格架构。此 B 风格模型具有 width_coefficient=1.2depth_coefficient=1.4
efficientnetlite_b4 11.84M 具有 7 个卷积块的 EfficientNet B 风格架构。此 B 风格模型具有 width_coefficient=1.4depth_coefficient=1.8

[源代码]

EfficientNetLiteB0Backbone

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

实例化 EfficientNetLiteB0 架构。

参考

参数

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

示例

input_data = np.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = EfficientNetLiteB0Backbone()
output = model(input_data)

[源代码]

EfficientNetLiteB1Backbone

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

实例化 EfficientNetLiteB1 架构。

参考

参数

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

示例

input_data = np.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = EfficientNetLiteB1Backbone()
output = model(input_data)

[源代码]

EfficientNetLiteB2Backbone

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

实例化 EfficientNetLiteB2 架构。

参考

参数

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

示例

input_data = np.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = EfficientNetLiteB2Backbone()
output = model(input_data)

[源代码]

EfficientNetLiteB3Backbone

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

实例化 EfficientNetLiteB3 架构。

参考

参数

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

示例

input_data = np.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = EfficientNetLiteB3Backbone()
output = model(input_data)

[源代码]

EfficientNetLiteB4Backbone

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

实例化 EfficientNetLiteB4 架构。

参考

参数

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

示例

input_data = np.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = EfficientNetLiteB4Backbone()
output = model(input_data)