Функция applications.EfficientNetB3
Функция applications.EfficientNetB3 создает модель нейронной сети
архитектуры EfficientNetB3, предобученную на наборе данных ImageNet.
Первым параметром функция принимает настройку весов weights,
вторым - форму входных данных input_shape.
Третьим параметром можно передать количество классов
classes для выходного слоя.
Модель подходит для задач классификации изображений
и переноса обучения.
Синтаксис
tf.keras.applications.EfficientNetB3(
include_top=True,
weights='imagenet',
input_shape=None,
classes=1000
)
Пример
Давайте создадим модель EfficientNetB3 с весами ImageNet и стандартной формой входа:
import tensorflow as tf
model = tf.keras.applications.EfficientNetB3(
weights='imagenet',
input_shape=(300, 300, 3)
)
print(model.input_shape)
print(model.output_shape)
Результат выполнения кода:
(None, 300, 300, 3)
(None, 1000)
Пример
Давайте создадим модель без верхних слоев для извлечения признаков:
import tensorflow as tf
base_model = tf.keras.applications.EfficientNetB3(
include_top=False,
weights='imagenet',
input_shape=(300, 300, 3)
)
print(base_model.output_shape)
Результат выполнения кода:
(None, 10, 10, 1536)
Пример
Давайте создадим модель для классификации на пять классов:
import tensorflow as tf
model = tf.keras.applications.EfficientNetB3(
include_top=True,
weights=None,
input_shape=(300, 300, 3),
classes=5
)
print(model.output_shape)
Результат выполнения кода:
(None, 5)
Пример
Давайте выполним предсказание для случайного изображения:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.applications.EfficientNetB3(
weights='imagenet',
input_shape=(300, 300, 3)
)
img = tf.random.uniform((1, 300, 300, 3))
res = model.predict(img)
print(res.shape)
Результат выполнения кода:
(1, 1000)
Смотрите также
-
функцию
EfficientNetB0,
которая создает облегченную модель EfficientNetB0 -
функцию
load_model,
которая загружает сохраненную модель -
функцию
save_model,
которая сохраняет модель в файл -
функцию
ResNet50,
которая создает модель ResNet50