Функция applications.Xception
Функция applications.Xception создает модель Xception -
глубокую сверточную нейронную сеть, основанную на
разделяемых по глубине свертках. Первым параметром
передается форма входных данных input_shape,
вторым - количество классов classes,
третьим - использовать ли предобученные веса
weights. Модель может работать как в режиме
инференса, так и в режиме извлечения признаков
через параметр include_top.
Синтаксис
tf.keras.applications.Xception(
include_top=True,
weights="imagenet",
input_shape=None,
classes=1000,
classifier_activation="softmax"
)
Пример
Давайте создадим модель Xception с предобученными весами ImageNet для классификации 1000 классов:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.applications.Xception(
include_top=True,
weights="imagenet",
input_shape=(299, 299, 3),
classes=1000
)
print(model.input_shape)
print(model.output_shape)
Результат выполнения кода:
(None, 299, 299, 3)
(None, 1000)
Пример
Давайте создадим усеченную модель без верхнего классификатора для извлечения признаков:
Результат выполнения кода:
(None, 10, 10, 2048)
Пример
Давайте применим модель к изображению и получим предсказания классов:
import tensorflow as tf
import numpy as np
tf.random.set_seed(0)
model = tf.keras.applications.Xception(
include_top=True,
weights="imagenet",
input_shape=(299, 299, 3)
)
img = np.random.rand(1, 299, 299, 3).astype("float32")
res = model.predict(img)
print(res.shape)
Результат выполнения кода:
(1, 1000)
Смотрите также
-
функцию
InceptionV3,
которая создает модель InceptionV3 для классификации изображений -
функцию
ResNet50,
которая создает остаточную сеть ResNet50 -
функцию
VGG16,
которая создает сверточную сеть VGG16 -
функцию
EfficientNetB0,
которая создает эффективную сеть EfficientNetB0