怎么用python代码实现MobileNet?
0 985
0

包括其中的一些变量怎么设置参数

收藏
2021-03-09 17:47 更新 正直的烤面包 •  3996
共 1 个回答
高赞 时间
0

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体系结构.

参考

MobileNets:用于移动视觉应用的高效卷积神经网络

可以加载基于ImageNet的预训练权重。 请注意,模型使用的数据格式是tf.keras.backend.image_data_format()中指定的格式。

注意:每个Keras应用程序都需要一种特定类型的输入预处理。对于MobileNet,在将输入传递给模型之前,对输入调用tf.keras.applications.mobilenet.preprocess_input

变量

  • input_shape:可选的形状元组,仅当include_top为False时才指定(否则,输入形状必须为(224,224,3)(使用channels_last数据格式)或(3,224,224)(使用channels_first数据格式)。 它应该有3个输入通道,宽度和高度不小于32,例如(200,200,3)是一个有效值,默认为None,如果提供了input_tensor,则将忽略input_shape

  • alpha:控制网络的宽度。 这在MobileNet论文中称为宽度倍增器。 如果alpha <1.0,则按比例减少每层中的滤波器数量;如果alpha> 1.0,则按比例增加每层中的滤波器数量;如果alpha = 1,则在每一层使用论文中默认滤波器数量, 默认为1.0。

  • depth_multiplier:用于深度卷积的深度乘数。 这在MobileNet论文中称为分辨率乘数,默认为1.0。

  • dropout:默认值0.001.

  • include_top:布尔值,是否在网络顶部包括完全连接的层。 默认为True

  • weights:“None”(随机初始化),“ imagenet”(在ImageNet上进行预训练)或要加载的权重文件的路径之一。 默认imagenet

  • input_tensor:可选的Keras张量(即layers.Input()的输出),用作模型的图像输入。input_tensor对于在多个不同网络之间共享输入很有用。 默认为None。

  • pooling:当include_topFalse时,用于特征提取的可选池模式。

    • None(默认)表示模型的输出将是最后一个卷积块的4D张量输出。
    • avg表示全局平均池将应用于最后一个卷积块的输出,因此模型的输出将为2D张量。
    • max表示将应用全局最大池。
  • classes:分类图像的可选类数,仅当include_topTrue且未指定weights参数时才指定.默认值为1000。

  • classifier_activation:字符串或调用值。 要在顶层上使用的激活函数。 除非include_top = True,否则将被忽略。 设置classifier_activation=None返回“顶层”的登录信息。

  • ** kwargs:仅用于向后兼容。

返回

keras.Model实例。

Raises

  • ValueError:权重参数无效或输入形状无效。
  • ValueError:如果使用预训练的顶层时classifier_activation不是softmaxNone,则为ValueError。

可参考阅读https://keras.io/api/applications/mobilenet/

收藏
2021-03-09 18:02 更新 阿托 •  17013