Функция applications.ResNet101
Функция applications.ResNet101 создает модель
ResNet101 - глубокую сверточную нейронную сеть
из 101 слоя с остаточными связями. Первым
параметром передается форма входных данных
input_shape, вторым - использовать ли
предобученные веса weights. Третьим
параметром указывается количество классов
classes. Также можно передать параметр
include_top, который определяет, включать
ли полносвязный классификатор в конце сети.
Синтаксис
tf.keras.applications.ResNet101(
include_top=True,
weights='imagenet',
input_shape=None,
classes=1000
)
Пример
Давайте создадим модель ResNet101 с предобученными весами для классификации изображений:
import tensorflow as tf
model = tf.keras.applications.ResNet101(
weights='imagenet'
)
print(model.name)
print(len(model.layers))
Результат выполнения кода:
resnet101
347
Пример
Давайте создадим модель без полносвязного классификатора и укажем форму входных данных:
import tensorflow as tf
model = tf.keras.applications.ResNet101(
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, 2048)
Пример
Давайте выполним предсказание для случайного изображения:
import tensorflow as tf
import numpy as np
tf.random.set_seed(0)
model = tf.keras.applications.ResNet101(
weights='imagenet'
)
img = tf.random.normal((1, 224, 224, 3))
res = model.predict(img, verbose=0)
print(res.shape)
print(np.argmax(res))
Результат выполнения кода:
(1, 1000)
82
Смотрите также
-
функцию
ResNet50,
которая создает модель ResNet50 из 50 слоев -
функцию
VGG16,
которая создает модель VGG16 с 16 слоями -
функцию
InceptionV3,
которая создает модель InceptionV3 -
функцию
EfficientNetB0,
которая создает модель EfficientNetB0