ยป
Keras API reference /
Keras Applications /
MobileNet and MobileNetV2

`MobileNet`

function```
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
)
```

Instantiates the MobileNet architecture.

**Reference**

Optionally loads weights pre-trained on ImageNet.
Note that the data format convention used by the model is
the one specified in the `tf.keras.backend.image_data_format()`

.

Note: each Keras Application expects a specific kind of input preprocessing.
For MobileNet, call `tf.keras.applications.mobilenet.preprocess_input`

on your inputs before passing them to the model.

**Arguments**

**input_shape**: Optional shape tuple, only to be specified if`include_top`

is False (otherwise the input shape has to be`(224, 224, 3)`

(with`channels_last`

data format) or (3, 224, 224) (with`channels_first`

data format). It should have exactly 3 inputs channels, and width and height should be no smaller than 32. E.g.`(200, 200, 3)`

would be one valid value. Default to`None`

.`input_shape`

will be ignored if the`input_tensor`

is provided.**alpha**: Controls the width of the network. This is known as the width multiplier in the MobileNet paper. - If`alpha`

< 1.0, proportionally decreases the number of filters in each layer. - If`alpha`

> 1.0, proportionally increases the number of filters in each layer. - If`alpha`

= 1, default number of filters from the paper are used at each layer. Default to 1.0.**depth_multiplier**: Depth multiplier for depthwise convolution. This is called the resolution multiplier in the MobileNet paper. Default to 1.0.**dropout**: Dropout rate. Default to 0.001.**include_top**: Boolean, whether to include the fully-connected layer at the top of the network. Default to`True`

.**weights**: One of`None`

(random initialization), 'imagenet' (pre-training on ImageNet), or the path to the weights file to be loaded. Default to`imagenet`

.**input_tensor**: Optional Keras tensor (i.e. output of`layers.Input()`

) to use as image input for the model.`input_tensor`

is useful for sharing inputs between multiple different networks. Default to None.**pooling**: Optional pooling mode for feature extraction when`include_top`

is`False`

.`None`

(default) means that the output of the model will be the 4D tensor output of the last convolutional block.`avg`

means that global average pooling will be applied to the output of the last convolutional block, and thus the output of the model will be a 2D tensor.`max`

means that global max pooling will be applied.

**classes**: Optional number of classes to classify images into, only to be specified if`include_top`

is True, and if no`weights`

argument is specified. Defaults to 1000.**classifier_activation**: A`str`

or callable. The activation function to use on the "top" layer. Ignored unless`include_top=True`

. Set`classifier_activation=None`

to return the logits of the "top" layer.****kwargs**: For backwards compatibility only.

**Returns**

A `keras.Model`

instance.

**Raises**

**ValueError**: in case of invalid argument for`weights`

, or invalid input shape.**ValueError**: if`classifier_activation`

is not`softmax`

or`None`

when using a pretrained top layer.

`MobileNetV2`

function```
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
)
```

Instantiates the MobileNetV2 architecture.

**Reference**

Optionally loads weights pre-trained on ImageNet.

Note: each Keras Application expects a specific kind of input preprocessing.
For MobileNetV2, call `tf.keras.applications.mobilenet_v2.preprocess_input`

on your inputs before passing them to the model.

**Arguments**

**input_shape**: Optional shape tuple, to be specified if you would like to use a model with an input image resolution that is not (224, 224, 3). It should have exactly 3 inputs channels (224, 224, 3). You can also omit this option if you would like to infer input_shape from an input_tensor. If you choose to include both input_tensor and input_shape then input_shape will be used if they match, if the shapes do not match then we will throw an error. E.g.`(160, 160, 3)`

would be one valid value.**alpha**: Float between 0 and 1. controls the width of the network. This is known as the width multiplier in the MobileNetV2 paper, but the name is kept for consistency with`applications.MobileNetV1`

model in Keras.- If
`alpha`

< 1.0, proportionally decreases the number of filters in each layer. - If
`alpha`

> 1.0, proportionally increases the number of filters in each layer. - If
`alpha`

= 1, default number of filters from the paper are used at each layer.

- If
**include_top**: Boolean, whether to include the fully-connected layer at the top of the network. Defaults to`True`

.**weights**: String, one of`None`

(random initialization), 'imagenet' (pre-training on ImageNet), or the path to the weights file to be loaded.**input_tensor**: Optional Keras tensor (i.e. output of`layers.Input()`

) to use as image input for the model.**pooling**: String, optional pooling mode for feature extraction when`include_top`

is`False`

.`None`

means that the output of the model will be the 4D tensor output of the last convolutional block.`avg`

means that global average pooling will be applied to the output of the last convolutional block, and thus the output of the model will be a 2D tensor.`max`

means that global max pooling will be applied.

**classes**: Integer, optional number of classes to classify images into, only to be specified if`include_top`

is True, and if no`weights`

argument is specified.**classifier_activation**: A`str`

or callable. The activation function to use on the "top" layer. Ignored unless`include_top=True`

. Set`classifier_activation=None`

to return the logits of the "top" layer.****kwargs**: For backwards compatibility only.

**Returns**

A `keras.Model`

instance.

**Raises**

**ValueError**: in case of invalid argument for`weights`

, or invalid input shape or invalid alpha, rows when weights='imagenet'**ValueError**: if`classifier_activation`

is not`softmax`

or`None`

when using a pretrained top layer.