KerasHub:预训练模型 / API 文档 / 模型架构 / Xception / XceptionBackbone 模型

XceptionBackbone 模型

[源代码]

XceptionBackbone

keras_hub.models.XceptionBackbone(
    stackwise_conv_filters,
    stackwise_pooling,
    image_shape=(None, None, 3),
    data_format=None,
    dtype=None,
    **kwargs
)

具有超参数的 Xception 核心网络。

此类实现了 Xception: Deep Learning with Depthwise Separable Convolutions 中描述的 Xception 骨干网络。

大多数用户会希望使用此模型提供的预训练预设。如果您正在创建自定义骨干网络,此模型通过 stackwise_conv_filtersstackwise_pooling 参数提供了可定制性。此骨干网络假定与原始 Xception 模型相同的基本结构:* 除第一个和最后一个块外,所有地方都有残差和预激活。* 仅第一个块使用卷积层,其他地方使用深度可分离卷积层。

参数

  • stackwise_conv_filters:整数列表的列表。每个最外层列表条目表示一个块,每个最内层列表条目表示一个卷积层。整数值指定卷积层的滤波器数量。
  • stackwise_pooling:布尔值列表。每个块的布尔值列表,如果块应包含最大池化层,则每个条目为 true;否则为 false。
  • image_shape: 元组。不带批量大小的输入形状。默认为 (None, None, 3)
  • data_formatNone 或字符串。如果指定,则为 "channels_last""channels_first"。如果未指定,将使用 Keras 默认值。
  • dtypeNone 或 str 或 keras.mixed_precision.DTypePolicy。用于模型计算和权重的 dtype。

示例

input_data = np.random.uniform(0, 1, size=(2, 224, 224, 3))

# Pretrained Xception backbone.
model = keras_hub.models.Backbone.from_preset("xception_41_imagenet")
model(input_data)

# Randomly initialized Xception backbone with a custom config.
model = keras_hub.models.XceptionBackbone(
    stackwise_conv_filters=[[32, 64], [64, 128], [256, 256]],
    stackwise_pooling=[True, True, False],
)
model(input_data)

[源代码]

from_preset 方法

XceptionBackbone.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,
)
预设 参数 描述
xception_41_imagenet 20.86M 41 层 Xception 模型,在 ImageNet 1k 上预训练。