MobileNetBackbone
类keras_hub.models.MobileNetBackbone(
stackwise_expansion,
stackwise_num_blocks,
stackwise_num_filters,
stackwise_kernel_size,
stackwise_num_strides,
stackwise_se_ratio,
stackwise_activation,
stackwise_padding,
output_num_filters,
depthwise_filters,
depthwise_stride,
depthwise_residual,
last_layer_filter,
squeeze_and_excite=None,
image_shape=(None, None, 3),
input_activation="hard_swish",
output_activation="hard_swish",
input_num_filters=16,
dtype=None,
**kwargs
)
实例化 MobileNet 架构。
MobileNet 是一种轻量级卷积神经网络 (CNN),针对移动和边缘设备进行了优化,在准确性和效率之间取得了平衡。通过采用深度可分离卷积和 Squeeze-and-Excitation (SE) 块等技术,MobileNet 模型非常适用于资源受限设备上的实时应用。
参考文献
参数
None
或 str 或 keras.mixed_precision.DTypePolicy
。用于模型计算和权重的 dtype。示例
input_data = tf.ones(shape=(8, 224, 224, 3))
# Randomly initialized backbone with a custom config
model = MobileNetBackbone(
stackwise_expansion=[
[40, 56],
[64, 144, 144],
[72, 72],
[144, 288, 288],
],
stackwise_num_blocks=[2, 3, 2, 3],
stackwise_num_filters=[
[16, 16],
[24, 24, 24],
[24, 24],
[48, 48, 48],
],
stackwise_kernel_size=[[3, 3], [5, 5, 5], [5, 5], [5, 5, 5]],
stackwise_num_strides=[[2, 1], [2, 1, 1], [1, 1], [2, 1, 1]],
stackwise_se_ratio=[
[None, None],
[0.25, 0.25, 0.25],
[0.3, 0.3],
[0.3, 0.25, 0.25],
],
stackwise_activation=[
["relu", "relu"],
["hard_swish", "hard_swish", "hard_swish"],
["hard_swish", "hard_swish"],
["hard_swish", "hard_swish", "hard_swish"],
],
output_num_filters=288,
input_activation="hard_swish",
output_activation="hard_swish",
input_num_filters=16,
image_shape=(224, 224, 3),
depthwise_filters=8,
squeeze_and_excite=0.5,
)
output = model(input_data)
from_preset
方法MobileNetBackbone.from_preset(preset, load_weights=True, **kwargs)
从模型预设实例化 keras_hub.models.Backbone
。
预设是用于保存和加载预训练模型的配置、权重和其他文件资产的目录。preset
可以作为以下之一传递:
'bert_base_en'
'kaggle://user/bert/keras/bert_base_en'
'hf://user/bert_base_en'
'./bert_base_en'
这个构造函数可以通过两种方式调用。要么从基类调用,例如 keras_hub.models.Backbone.from_preset()
,要么从模型类调用,例如 keras_hub.models.GemmaBackbone.from_preset()
。如果从基类调用,返回对象的子类将从预设目录中的配置推断出来。
对于任何 Backbone
子类,您可以运行 cls.presets.keys()
列出该类可用的所有内置预设。
参数
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,
)
预设 | 参数 | 描述 |
---|---|---|
mobilenet_v3_small_050_imagenet | 278.78K | 在 224x224 分辨率下,于 ImageNet 1k 数据集上预训练的小型 Mobilenet V3 模型。通道乘数减半。 |
mobilenet_v3_small_100_imagenet | 939.12K | 在 224x224 分辨率下,于 ImageNet 1k 数据集上预训练的小型 Mobilenet V3 模型。具有基线通道乘数。 |
mobilenet_v3_large_100_imagenet | 3.00M | 在 224x224 分辨率下,于 ImageNet 1k 数据集上预训练的大型 Mobilenet V3 模型。具有基线通道乘数。 |
mobilenet_v3_large_100_imagenet_21k | 3.00M | 在 224x224 分辨率下,于 ImageNet 21k 数据集上预训练的大型 Mobilenet V3 模型。具有基线通道乘数。 |