Функция applications.EfficientNetB0
Функция applications.EfficientNetB0 создает модель
нейронной сети архитектуры EfficientNetB0. Первым
параметром функция принимает размер входного
изображения, вторым - логическое значение, включать
ли полносвязный слой классификации. Третьим
параметром можно передать количество классов для
классификации. Также доступны параметры для
настройки весов и формы входного тензора.
Синтаксис
tf.keras.applications.EfficientNetB0(
input_shape=[224, 224, 3],
include_top=True,
weights='imagenet',
classes=1000,
classifier_activation='softmax'
)
Пример
Давайте создадим модель EfficientNetB0 без полносвязного слоя классификации:
import tensorflow as tf
model = tf.keras.applications.EfficientNetB0(
input_shape=[224, 224, 3],
include_top=False,
weights='imagenet'
)
print(model.output_shape)
Результат выполнения кода:
(None, 7, 7, 1280)
Пример
Давайте создадим модель с полносвязным слоем классификации:
import tensorflow as tf
model = tf.keras.applications.EfficientNetB0(
input_shape=[224, 224, 3],
include_top=True,
weights='imagenet'
)
print(model.output_shape)
Результат выполнения кода:
(None, 1000)
Пример
Давайте создадим модель для классификации изображений с тремя классами:
import tensorflow as tf
model = tf.keras.applications.EfficientNetB0(
input_shape=[224, 224, 3],
include_top=True,
weights=None,
classes=3,
classifier_activation='softmax'
)
print(model.output_shape)
Результат выполнения кода:
(None, 3)
Пример
Давайте применим модель к тензору с изображением и выведем форму результата:
import tensorflow as tf
model = tf.keras.applications.EfficientNetB0(
input_shape=[224, 224, 3],
include_top=True,
weights='imagenet'
)
t = tf.constant([[[[1.0, 2.0, 3.0]] * 224] * 224])
res = model(t)
print(res.shape)
Результат выполнения кода:
(1, 1000)
Смотрите также
-
функцию
EfficientNetB3,
которая создает модель EfficientNetB3 -
функцию
MobileNetV2,
которая создает модель MobileNetV2 -
функцию
ResNet50,
которая создает модель ResNet50 -
функцию
load_model,
которая загружает модель из файла