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 主干网络。

结合了卷积神经网络主干(例如 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. 一个 ModelScope 句柄,例如 'modelscope://user/bert_base_en'
  5. 一个本地预设目录的路径,如 './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 数据集上进行微调。