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

RetinaNetBackbone 模型

[源代码]

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. 输入图像的形状 (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。

[源代码]

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:字符串。一个内置预设标识符、一个 Kaggle Models 句柄、一个 Hugging Face 句柄或一个本地目录的路径。
  • load_weights:布尔值。如果为 `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 骨干网络,在 800x800 分辨率的 COCO 数据集上进行微调,FPN 特征从 P5 级别创建。
retinanet_resnet50_fpn_coco 34.12M RetinaNet 模型,带有 ResNet50 骨干网络,在 800x800 分辨率的 COCO 数据集上进行微调。