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