MobileNet
函数tf_keras.applications.MobileNet(
input_shape=None,
alpha=1.0,
depth_multiplier=1,
dropout=0.001,
include_top=True,
weights="imagenet",
input_tensor=None,
pooling=None,
classes=1000,
classifier_activation="softmax",
**kwargs
)
实例化 MobileNet 架构。
参考文献
此函数返回一个 TF-Keras 图像分类模型,可以选择加载在 ImageNet 上预训练的权重。
对于图像分类用例,请参阅此页面以获取详细示例。
对于迁移学习用例,请务必阅读迁移学习和微调指南。
注意:每个 TF-Keras 应用都期望特定类型的输入预处理。对于 MobileNet,在将输入传递给模型之前,请在输入上调用tf.keras.applications.mobilenet.preprocess_input
。mobilenet.preprocess_input
将输入像素缩放至 -1 到 1 之间。
参数
include_top
为 False 时指定(否则输入形状必须为 (224, 224, 3)
(使用 channels_last
数据格式)或 (3, 224, 224)(使用 channels_first
数据格式)。它应该正好有 3 个输入通道,宽度和高度不应小于 32。例如,(200, 200, 3)
是一个有效值。默认为 None
。如果提供了 input_tensor
,则将忽略 input_shape
。alpha
< 1.0,则按比例减少每一层中的过滤器数量。- 如果 alpha
> 1.0,则按比例增加每一层中的过滤器数量。- 如果 alpha
= 1,则使用论文中每一层中的默认过滤器数量。默认为 1.0
。1.0
。0.001
。True
。None
(随机初始化)、'imagenet'(在 ImageNet 上预训练)或要加载的权重文件的路径之一。默认为 imagenet
。layers.Input()
的输出),用作模型的图像输入。input_tensor
用于在多个不同的网络之间共享输入。默认为 None
。include_top
为 False
时,用于特征提取的可选池化模式。None
(默认)表示模型的输出将是最后一个卷积块的 4D 张量输出。avg
表示全局平均池化将应用于最后一个卷积块的输出,因此模型的输出将是 2D 张量。max
表示将应用全局最大池化。include_top
为 True 且未指定 weights
参数时指定。默认为 1000
。str
或可调用对象。要用于“顶部”层的激活函数。除非 include_top=True
,否则将被忽略。将 classifier_activation
设置为 None
以返回“顶部”层的 logits。加载预训练权重时,classifier_activation
只能为 None
或 "softmax"
。返回值
一个keras.Model
实例。
MobileNetV2
函数tf_keras.applications.MobileNetV2(
input_shape=None,
alpha=1.0,
include_top=True,
weights="imagenet",
input_tensor=None,
pooling=None,
classes=1000,
classifier_activation="softmax",
**kwargs
)
实例化 MobileNetV2 架构。
MobileNetV2 与原始 MobileNet 非常相似,除了它使用具有瓶颈特征的反向残差块。与原始 MobileNet 相比,它的参数数量大大减少。MobileNet 支持任何大于 32 x 32 的输入尺寸,更大的图像尺寸提供更好的性能。
参考文献
此函数返回一个 TF-Keras 图像分类模型,可以选择加载在 ImageNet 上预训练的权重。
对于图像分类用例,请参阅此页面以获取详细示例。
对于迁移学习用例,请务必阅读迁移学习和微调指南。
注意:每个 TF-Keras 应用都期望特定类型的输入预处理。对于 MobileNetV2,在将输入传递给模型之前,请在输入上调用tf.keras.applications.mobilenet_v2.preprocess_input
。mobilenet_v2.preprocess_input
将输入像素缩放至 -1 到 1 之间。
参数
(160, 160, 3)
是一个有效值。applications.MobileNetV1
模型保持一致,名称保持不变。alpha
< 1.0,则按比例减少每一层中的过滤器数量。alpha
> 1.0,则按比例增加每一层中的过滤器数量。alpha
= 1.0,则使用论文中每一层中的默认过滤器数量。True
。None
(随机初始化)、'imagenet'(在 ImageNet 上预训练)或要加载的权重文件的路径之一。layers.Input()
的输出),用作模型的图像输入。include_top
为 False
时,用于特征提取的可选池化模式。None
表示模型的输出将是最后一个卷积块的 4D 张量输出。avg
表示全局平均池化将应用于最后一个卷积块的输出,因此模型的输出将是 2D 张量。max
表示将应用全局最大池化。include_top
为 True 且未指定 weights
参数时指定。str
或可调用对象。要用于“顶部”层的激活函数。除非 include_top=True
,否则将被忽略。将 classifier_activation
设置为 None
以返回“顶部”层的 logits。加载预训练权重时,classifier_activation
只能为 None
或 "softmax"
。返回值
一个keras.Model
实例。
MobileNetV3Small
函数tf_keras.applications.MobileNetV3Small(
input_shape=None,
alpha=1.0,
minimalistic=False,
include_top=True,
weights="imagenet",
input_tensor=None,
classes=1000,
pooling=None,
dropout_rate=0.2,
classifier_activation="softmax",
include_preprocessing=True,
)
实例化 MobileNetV3Small 架构。
参考文献
MAC 指乘加次数
分类检查点 | MACs(M) | 参数(M) | Top1 准确率 | Pixel1 CPU(毫秒) |
---|---|---|---|---|
mobilenet_v3_large_1.0_224 | 217 | 5.4 | 75.6 | 51.2 |
mobilenet_v3_large_0.75_224 | 155 | 4.0 | 73.3 | 39.8 |
mobilenet_v3_large_minimalistic_1.0_224 | 209 | 3.9 | 72.3 | 44.1 |
mobilenet_v3_small_1.0_224 | 66 | 2.9 | 68.1 | 15.8 |
mobilenet_v3_small_0.75_224 | 44 | 2.4 | 65.4 | 12.8 |
mobilenet_v3_small_minimalistic_1.0_224 | 65 | 2.0 | 61.9 | 12.2 |
对于图像分类用例,请参阅此页面以获取详细示例。
对于迁移学习用例,请务必阅读迁移学习和微调指南。
注意:每个 TF-Keras 应用都期望特定类型的输入预处理。对于 MobileNetV3,默认情况下,输入预处理包含在模型中(作为 Rescaling
层),因此tf.keras.applications.mobilenet_v3.preprocess_input
实际上是一个直通函数。在这种情况下,MobileNetV3 模型期望其输入为像素值范围在 [0-255] 内的浮点张量。同时,可以通过将 include_preprocessing
参数设置为 False 来禁用作为模型一部分的预处理(即 Rescaling
层)。在禁用预处理的情况下,MobileNetV3 模型期望其输入为像素值范围在 [-1, 1] 内的浮点张量。
参数
(160, 160, 3)
是一个有效值。alpha
< 1.0,则按比例减少每一层中的过滤器数量。alpha
> 1.0,则按比例增加每一层中的过滤器数量。alpha
= 1,则使用论文中每一层中的默认过滤器数量。True
。None
(随机初始化)、'imagenet'(在 ImageNet 上预训练)或要加载的权重文件的路径之一。layers.Input()
的输出),用作模型的图像输入。include_top
为 False
时,用于特征提取的可选池化模式。None
表示模型的输出将是最后一个卷积块的 4D 张量输出。avg
表示全局平均池化将应用于最后一个卷积块的输出,因此模型的输出将是 2D 张量。max
表示将应用全局最大池化。include_top
为 True 且未指定 weights
参数时指定。str
或可调用对象。要用于“顶部”层的激活函数。除非 include_top=True
,否则将被忽略。将 classifier_activation
设置为 None
以返回“顶部”层的 logits。加载预训练权重时,classifier_activation
只能为 None
或 "softmax"
。Rescaling
)。默认为True
。调用参数
numpy.array
或tf.Tensor
,4D,3个颜色通道,如果include_preprocessing
为True,则值在[0, 255]范围内,否则在[-1, 1]范围内。返回值
一个keras.Model
实例。
MobileNetV3Large
函数tf_keras.applications.MobileNetV3Large(
input_shape=None,
alpha=1.0,
minimalistic=False,
include_top=True,
weights="imagenet",
input_tensor=None,
classes=1000,
pooling=None,
dropout_rate=0.2,
classifier_activation="softmax",
include_preprocessing=True,
)
实例化MobileNetV3Large架构。
参考文献
MAC 指乘加次数
分类检查点 | MACs(M) | 参数(M) | Top1 准确率 | Pixel1 CPU(毫秒) |
---|---|---|---|---|
mobilenet_v3_large_1.0_224 | 217 | 5.4 | 75.6 | 51.2 |
mobilenet_v3_large_0.75_224 | 155 | 4.0 | 73.3 | 39.8 |
mobilenet_v3_large_minimalistic_1.0_224 | 209 | 3.9 | 72.3 | 44.1 |
mobilenet_v3_small_1.0_224 | 66 | 2.9 | 68.1 | 15.8 |
mobilenet_v3_small_0.75_224 | 44 | 2.4 | 65.4 | 12.8 |
mobilenet_v3_small_minimalistic_1.0_224 | 65 | 2.0 | 61.9 | 12.2 |
对于图像分类用例,请参阅此页面以获取详细示例。
对于迁移学习用例,请务必阅读迁移学习和微调指南。
注意:每个 TF-Keras 应用都期望特定类型的输入预处理。对于 MobileNetV3,默认情况下,输入预处理包含在模型中(作为 Rescaling
层),因此tf.keras.applications.mobilenet_v3.preprocess_input
实际上是一个直通函数。在这种情况下,MobileNetV3 模型期望其输入为像素值范围在 [0-255] 内的浮点张量。同时,可以通过将 include_preprocessing
参数设置为 False 来禁用作为模型一部分的预处理(即 Rescaling
层)。在禁用预处理的情况下,MobileNetV3 模型期望其输入为像素值范围在 [-1, 1] 内的浮点张量。
参数
(160, 160, 3)
是一个有效值。alpha
< 1.0,则按比例减少每一层中的过滤器数量。alpha
> 1.0,则按比例增加每一层中的过滤器数量。alpha
= 1,则使用论文中每一层中的默认过滤器数量。True
。None
(随机初始化)、'imagenet'(在 ImageNet 上预训练)或要加载的权重文件的路径之一。layers.Input()
的输出),用作模型的图像输入。include_top
为 False
时,用于特征提取的可选池化模式。None
表示模型的输出将是最后一个卷积块的 4D 张量输出。avg
表示全局平均池化将应用于最后一个卷积块的输出,因此模型的输出将是 2D 张量。max
表示将应用全局最大池化。include_top
为 True 且未指定 weights
参数时指定。str
或可调用对象。要用于“顶部”层的激活函数。除非 include_top=True
,否则将被忽略。将 classifier_activation
设置为 None
以返回“顶部”层的 logits。加载预训练权重时,classifier_activation
只能为 None
或 "softmax"
。Rescaling
)。默认为True
。调用参数
numpy.array
或tf.Tensor
,4D,3个颜色通道,如果include_preprocessing
为True,则值在[0, 255]范围内,否则在[-1, 1]范围内。返回值
一个keras.Model
实例。