KerasHub: 预训练模型 / API 文档 / 模型架构 / RetinaNet / RetinaNetBackbone 模型

RetinaNetBackbone 模型

[source]

RetinaNetBackbone

keras_hub.models.RetinaNetBackbone(
    image_encoder,
    min_level,
    max_level,
    use_p5,
    use_fpn_batch_norm=False,
    image_shape=(None, None, 3),
    data_format=None,
    dtype=None,
    **kwargs
)

RetinaNet 主干网络。

将 CNN 主干网络(例如 ResNet、MobileNet)与特征金字塔网络 (FPN) 结合,用于提取多尺度特征以进行目标检测。

参数

  • image_encoder: keras.Model。用于从输入图像中提取特征的主干模型(例如 ResNet50、MobileNetV2)。它应具有金字塔输出(即,将诸如 "P2""P3" 等级别名称映射到其对应特征张量的字典)。
  • min_level: int。特征金字塔的最小级别(例如 3)。这决定了使用的最粗粒度的特征级别。
  • max_level: int。特征金字塔的最大级别(例如 7)。这决定了使用的最细粒度的特征级别。
  • use_p5: bool。确定用于创建更粗粒度特征金字塔级别的输入源。如果为 True,则使用最后一个主干层(在 FPN 中通常为 'P5')的输出作为输入,通过额外的卷积层创建更高级别的特征图(例如 'P6''P7')。如果为 False,则直接使用来自主干网络的原始 'P5' 特征图作为输入来创建更粗粒度的级别,绕过特征金字塔内对 'P5' 的进一步处理。默认为 False
  • use_fpn_batch_norm: bool。是否在特征金字塔网络中使用批量归一化。默认为 False
  • image_shape: tuple。tuple。输入图像的形状 (H, W, C)。如果高度和宽度是可变的,则可以为 None
  • data_format: str。输入图像的数据格式(channels_first 或 channels_last)。
  • dtype: str。输入图像的数据类型。
  • **kwargs: 传递给基类的其他关键字参数。

抛出

  • ValueError: 如果 min_level 大于 max_level
  • ValueError: 如果 backbone_max_level 小于 5 且 max_level 大于或等于 5。

[source]

from_preset 方法

RetinaNetBackbone.from_preset(preset, load_weights=True, **kwargs)

从模型预设实例化一个 keras_hub.models.Backbone

预设是用于保存和加载预训练模型的配置、权重和其他文件资产的目录。preset 可以作为以下之一传递:

  1. 一个内置的预设标识符,例如 'bert_base_en'
  2. 一个 Kaggle Models 句柄,例如 'kaggle://user/bert/keras/bert_base_en'
  3. 一个 Hugging Face 句柄,例如 'hf://user/bert_base_en'
  4. 本地预设目录的路径,例如 './bert_base_en'

这个构造函数可以通过两种方式之一调用。要么从基类调用,例如 keras_hub.models.Backbone.from_preset(),要么从模型类调用,例如 keras_hub.models.GemmaBackbone.from_preset()。如果从基类调用,返回对象的子类将从预设目录中的配置推断出来。

对于任何 Backbone 子类,你可以运行 cls.presets.keys() 来列出该类上所有可用的内置预设。

参数

  • preset: string。一个内置的预设标识符、一个 Kaggle Models 句柄、一个 Hugging Face 句柄或一个本地目录的路径。
  • load_weights: bool。如果为 True,权重将被加载到模型架构中。如果为 False,权重将随机初始化。

示例

# Load a Gemma backbone with pre-trained weights.
model = keras_hub.models.Backbone.from_preset(
    "gemma_2b_en",
)

# Load a Bert backbone with a pre-trained config and random weights.
model = keras_hub.models.Backbone.from_preset(
    "bert_base_en",
    load_weights=False,
)
预设 参数 描述
retinanet_resnet50_fpn_v2_coco 31.56M RetinaNet 模型,使用 ResNet50 主干网络,在 COCO 数据集上以 800x800 分辨率进行微调,FPN 特征从 P5 级别创建。
retinanet_resnet50_fpn_coco 34.12M RetinaNet 模型,使用 ResNet50 主干网络,在 COCO 数据集上以 800x800 分辨率进行微调。