Функция applications.MobileNetV2
Функция applications.MobileNetV2 создает модель
MobileNetV2 - легкую сверточную нейронную сеть,
предназначенную для классификации изображений.
Первым параметром передается форма входных данных
input_shape, вторым - количество классов
classes, третьим - использовать ли предобученные
веса weights. Дополнительно можно указать
include_top, чтобы исключить полносвязный
классификатор сверху, и alpha для управления
шириной сети.
Синтаксис
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'
)
Пример
Давайте создадим модель MobileNetV2 с входом
224 на 224 пикселей и тремя классами
без предобученных весов:
import tensorflow as tf
model = tf.keras.applications.MobileNetV2(
input_shape=(224, 224, 3),
classes=3,
weights=None
)
print(model.output_shape)
Результат выполнения кода:
(None, 3)
Пример
Давайте создадим модель с предобученными весами
imagenet и посмотрим количество параметров:
Результат выполнения кода:
3504872
Пример
Давайте создадим модель без верхнего классификатора и применим ее к тензору с изображением:
import tensorflow as tf
model = tf.keras.applications.MobileNetV2(
input_shape=(224, 224, 3),
include_top=False,
weights='imagenet'
)
t = tf.constant(tf.random.uniform((1, 224, 224, 3)))
res = model(t)
print(res.shape)
Результат выполнения кода:
(1, 7, 7, 1280)
Пример
Давайте создадим уменьшенную модель с параметром
alpha равным 0.5:
import tensorflow as tf
model = tf.keras.applications.MobileNetV2(
input_shape=(224, 224, 3),
alpha=0.5,
weights=None
)
print(model.count_params())
Результат выполнения кода:
821824
Смотрите также
-
функцию
ResNet50,
которая создает модель ResNet50 -
функцию
EfficientNetB0,
которая создает модель EfficientNetB0 -
функцию
MobileNetV3Small,
которая создает модель MobileNetV3Small -
функцию
save_model,
которая сохраняет модель в файл