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

DenseNet 主干网络

[源代码]

DenseNetBackbone

keras_cv.models.DenseNetBackbone(
    stackwise_num_repeats,
    include_rescaling,
    input_shape=(None, None, 3),
    input_tensor=None,
    compression_ratio=0.5,
    growth_rate=32,
    **kwargs
)

实例化 DenseNet 架构。

参数

  • stackwise_num_repeats: int 列表,每个密集块中重复的卷积块的数量。
  • include_rescaling: bool,是否对输入进行重新缩放。如果设置为 True,输入将通过 Rescaling(1/255.0) 层。
  • input_shape: 可选的形状元组,默认为 (None, None, 3)。
  • input_tensor: 可选的 Keras 张量(例如,keras.layers.Input() 的输出),用作模型的图像输入。
  • compression_ratio: float,过渡层处的压缩率。
  • growth_rate: int,每个密集块添加的滤波器数量。

示例

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

# Pretrained backbone
model = keras_cv.models.DenseNetBackbone.from_preset("densenet121_imagenet")
output = model(input_data)

# Randomly initialized backbone with a custom config
model = DenseNetBackbone(
    stackwise_num_repeats=[6, 12, 24, 16],
    include_rescaling=False,
)
output = model(input_data)

[源代码]

from_preset 方法

DenseNetBackbone.from_preset()

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

参数

  • preset: 字符串。必须是 "densenet121"、"densenet169"、"densenet201"、"densenet121_imagenet"、"densenet169_imagenet"、"densenet201_imagenet" 之一。如果要查找具有预训练权重的预设,请选择 "densenet121_imagenet"、"densenet169_imagenet"、"densenet201_imagenet" 之一。
  • load_weights: 是否将预训练权重加载到模型中。默认为 None,它遵循预设是否具有可用的预训练权重。

示例

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

# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.DenseNetBackbone.from_preset(
    "densenet121_imagenet",
    load_weights=False,
预设名称 参数 描述
densenet121 未知 具有 121 层的 DenseNet 模型。
densenet169 未知 具有 169 层的 DenseNet 模型。
densenet201 未知 具有 201 层的 DenseNet 模型。
densenet121_imagenet 未知 具有 121 层的 DenseNet 模型。在 Imagenet 2012 分类任务上训练。
densenet169_imagenet 未知 具有 169 层的 DenseNet 模型。在 Imagenet 2012 分类任务上训练。
densenet201_imagenet 未知 具有 201 层的 DenseNet 模型。在 Imagenet 2012 分类任务上训练。

[源代码]

DenseNet121Backbone

keras_cv.models.DenseNet121Backbone(
    stackwise_num_repeats,
    include_rescaling,
    input_shape=(None, None, 3),
    input_tensor=None,
    compression_ratio=0.5,
    growth_rate=32,
    **kwargs
)

具有 121 层的 DenseNetBackbone 模型。

参考

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

参数

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

示例

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

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

[源代码]

DenseNet169Backbone

keras_cv.models.DenseNet169Backbone(
    stackwise_num_repeats,
    include_rescaling,
    input_shape=(None, None, 3),
    input_tensor=None,
    compression_ratio=0.5,
    growth_rate=32,
    **kwargs
)

具有 169 层的 DenseNetBackbone 模型。

参考

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

参数

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

示例

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

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

[源代码]

DenseNet201Backbone

keras_cv.models.DenseNet201Backbone(
    stackwise_num_repeats,
    include_rescaling,
    input_shape=(None, None, 3),
    input_tensor=None,
    compression_ratio=0.5,
    growth_rate=32,
    **kwargs
)

具有 201 层的 DenseNetBackbone 模型。

参考

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

参数

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

示例

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

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