Keras 3 API 文档 / KerasCV / 模型 / 主干网络 / CSPDarkNet 主干网络

CSPDarkNet 主干网络

[源代码]

CSPDarkNetBackbone

keras_cv.models.CSPDarkNetBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

此类表示 CSPDarkNet 架构。

参考

对于迁移学习用例,请务必阅读迁移学习和微调指南

参数

  • stackwise_channels:整数列表,模型中每个暗层的通道数。
  • stackwise_depth:整数列表,模型中每个暗层的深度。
  • include_rescaling:布尔值,是否重新缩放输入。如果设置为 True,则输入将通过 Rescaling(1/255.0) 层。
  • use_depthwise:布尔值,是否应使用 DarknetConvBlockDepthwise 而不是 DarknetConvBlock,默认为 False。
  • input_shape:可选的形状元组,默认为 (None, None, 3)。
  • input_tensor:可选的 Keras 张量(即 keras.layers.Input() 的输出),用作模型的图像输入。

返回值

一个keras.Model 实例。

示例

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

# Pretrained backbone
model = keras_cv.models.CSPDarkNetBackbone.from_preset(
    "csp_darknet_tiny_imagenet"
)
output = model(input_data)

# Randomly initialized backbone with a custom config
model = keras_cv.models.CSPDarkNetBackbone(
    stackwise_channels=[128, 256, 512, 1024],
    stackwise_depth=[3, 9, 9, 3],
    include_rescaling=False,
)
output = model(input_data)

[源代码]

from_preset 方法

CSPDarkNetBackbone.from_preset()

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

参数

  • preset:字符串。必须是 "csp_darknet_tiny"、"csp_darknet_s"、"csp_darknet_m"、"csp_darknet_l"、"csp_darknet_xl"、"csp_darknet_tiny_imagenet"、"csp_darknet_l_imagenet" 之一。如果正在寻找具有预训练权重的预设,请选择 "csp_darknet_tiny_imagenet" 或 "csp_darknet_l_imagenet" 之一。
  • load_weights:是否将预训练权重加载到模型中。默认为 None,这遵循预设是否有可用的预训练权重。

示例

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

# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.CSPDarkNetBackbone.from_preset(
    "csp_darknet_tiny_imagenet",
    load_weights=False,
预设名称 参数 描述
csp_darknet_tiny 2.38M CSPDarkNet 模型,具有 [48, 96, 192, 384] 个通道和 [1, 3, 3, 1] 个深度,其中批归一化和 SiLU 激活应用于卷积层之后。
csp_darknet_s 4.22M CSPDarkNet 模型,具有 [64, 128, 256, 512] 个通道和 [1, 3, 3, 1] 个深度,其中批归一化和 SiLU 激活应用于卷积层之后。
csp_darknet_m 12.37M CSPDarkNet 模型,具有 [96, 192, 384, 768] 个通道和 [2, 6, 6, 2] 个深度,其中批归一化和 SiLU 激活应用于卷积层之后。
csp_darknet_l 27.11M CSPDarkNet 模型,具有 [128, 256, 512, 1024] 个通道和 [3, 9, 9, 3] 个深度,其中批归一化和 SiLU 激活应用于卷积层之后。
csp_darknet_xl 56.84M CSPDarkNet 模型,具有 [170, 340, 680, 1360] 个通道和 [4, 12, 12, 4] 个深度,其中批归一化和 SiLU 激活应用于卷积层之后。
csp_darknet_tiny_imagenet 2.38M CSPDarkNet 模型,具有 [48, 96, 192, 384] 个通道和 [1, 3, 3, 1] 个深度,其中批归一化和 SiLU 激活应用于卷积层之后。在 ImageNet 2012 分类任务上训练。
csp_darknet_l_imagenet 27.11M CSPDarkNet 模型,具有 [128, 256, 512, 1024] 个通道和 [3, 9, 9, 3] 个深度,其中批归一化和 SiLU 激活应用于卷积层之后。在 ImageNet 2012 分类任务上训练。

[源代码]

CSPDarkNetTinyBackbone

keras_cv.models.CSPDarkNetTinyBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

具有 [48, 96, 192, 384] 个通道和 [1, 3, 3, 1] 个深度的 CSPDarkNetBackbone 模型。

参考

对于迁移学习用例,请务必阅读迁移学习和微调指南

参数

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

示例

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

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

[源代码]

CSPDarkNetSBackbone

keras_cv.models.CSPDarkNetSBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

具有 [64, 128, 256, 512] 个通道和 [1, 3, 3, 1] 个深度的 CSPDarkNetBackbone 模型。

参考

对于迁移学习用例,请务必阅读迁移学习和微调指南

参数

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

示例

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

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

[源代码]

CSPDarkNetMBackbone

keras_cv.models.CSPDarkNetMBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

具有 [96, 192, 384, 768] 个通道和 [2, 6, 6, 2] 个深度的 CSPDarkNetBackbone 模型。

参考

对于迁移学习用例,请务必阅读迁移学习和微调指南

参数

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

示例

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

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

[源代码]

CSPDarkNetLBackbone

keras_cv.models.CSPDarkNetLBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

具有 [128, 256, 512, 1024] 个通道和 [3, 9, 9, 3] 个深度的 CSPDarkNetBackbone 模型。

参考

对于迁移学习用例,请务必阅读迁移学习和微调指南

参数

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

示例

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

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

[源代码]

CSPDarkNetXLBackbone

keras_cv.models.CSPDarkNetXLBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

具有 [170, 340, 680, 1360] 个通道和 [4, 12, 12, 4] 个深度的 CSPDarkNetBackbone 模型。

参考

对于迁移学习用例,请务必阅读迁移学习和微调指南

参数

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

示例

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

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