Перейти к содержанию

Приложения

Applications

Keras Applications — это модели для глубокого обучения, которые доступны наряду с предварительно обученными весами. Эти модели можно использовать для прогнозирования, извлечения функций и тонкой настройки.

Веса загружаются автоматически при конкретизации модели. Они хранятся в ~/.keras/models/.

Доступные модели

Модели для классификации изображений с весами, обученными на ImageNet:

Все эти архитектуры совместимы со всеми бэкэндами (TensorFlow, Theano и CNTK), и после инстанцирования модели будут собраны в соответствии с форматом данных изображения, заданным в вашем конфигурационном файле Keras на ~/.keras/keras.json. Например, если вы установили image_data_format=channels_last, то любая модель, загруженная из этого репозитория, будет собрана в соответствии с соглашением о формате данных TensorFlow «Высота-ширина-глубина».

Обратите внимание: — Для Keras < 2.2.0 модель Xception доступна только для TensorFlow в связи с ее зависимостью от слоев SeparableConvolution. — Для Keras < 2.1.5 модель MobileNet доступна только для TensorFlow в связи с ее зависимостью от слоев DepthwiseConvolution.


Примеры использования для моделей классификации изображений

Классификация классов ImageNet с помощью ResNet50

from keras.applications.resnet50 import ResNet50from keras.preprocessing import imagefrom keras.applications.resnet50 import preprocess_input, decode_predictionsimport numpy as np

model = ResNet50(weights=’imagenet’)

img_path = ‘elephant.jpg’

img = image.load_img(img_path, target_size=(224, 224))

x = image.img_to_array(img)

x = np.expand_dims(x, axis=0)

x = preprocess_input(x)

preds = model.predict(x)# расшифровать результаты в список кортежей (класс, описание, вероятность)# (по одному такому списку для каждой выборки в партии).

print(‘Predicted:’, decode_predictions(preds, top=3)[0])# Предсказано: [(u’n02504013′, u’Indian_elephant’, 0.82658225), (u’n01871265′, u’tusker’, 0.1122357), (u’n02504458′, u’African_elephant’, 0.061040461)]

Особенности извлечения с VGG16

from keras.applications.vgg16 import VGG16from keras.preprocessing import imagefrom keras.applications.vgg16 import preprocess_inputimport numpy as np

model = VGG16(weights=’imagenet’, include_top=False)

img_path = ‘elephant.jpg’

img = image.load_img(img_path, target_size=(224, 224))

x = image.img_to_array(img)

x = np.expand_dims(x, axis=0)

x = preprocess_input(x)

features = model.predict(x)

Особенности извлечения из произвольного промежуточного слоя с помощью VGG19

from keras.applications.vgg19 import VGG19from keras.preprocessing import imagefrom keras.applications.vgg19 import preprocess_inputfrom keras.models import Modelimport numpy as np

base_model = VGG19(weights=’imagenet’)

model = Model(inputs=base_model.input, outputs=base_model.get_layer(‘block4_pool’).output)

img_path = ‘elephant.jpg’

img = image.load_img(img_path, target_size=(224, 224))

x = image.img_to_array(img)

x = np.expand_dims(x, axis=0)

x = preprocess_input(x)

block4_pool_features = model.predict(x)

Тонкая настройка InceptionV3 на новый набор классов

from keras.applications.inception_v3 import InceptionV3from keras.preprocessing import imagefrom keras.models import Modelfrom keras.layers import Dense, GlobalAveragePooling2Dfrom keras import backend as K

# создайте базовую предварительно подготовленную модель

base_model = InceptionV3(weights=’imagenet’, include_top=False)

# добавить средний слой глобального пространственного пула

x = base_model.output

x = GlobalAveragePooling2D()(x)# добавим полностью подключённый слой

x = Dense(1024, activation=’relu’)(x)# и логистический уровень — допустим, у нас 200 классов.

predictions = Dense(200, activation=’softmax’)(x)

# это модель, которую мы будем обучать

model = Model(inputs=base_model.input, outputs=predictions)

# first: train only the top layers (которые были случайным образом инициализированы)# т.е. заморозить все конволюционные слои InceptionV3

for layer in base_model.layers:

    layer.trainable = False

# скомпилируйте модель (нужно сделать *после* установки слоев в неуправляемые)

model.compile(optimizer=’rmsprop’, loss=’categorical_crossentropy’)

# обучить модель новым данным на несколько эпох.

model.fit_generator(…)

# в данный момент верхние слои хорошо обучены, и мы можем начать тонкую настройку# конволюционных слоев с начала V3. Мы заморозим нижние N слоев# и обучим остальные верхние слои.

# давайте визуализируем имена слоев и индексы слоев, чтобы увидеть, сколько слоев# мы должны заморозить.

:for i, layer in enumerate(base_model.layers):

   print(i, layer.name)

# мы выбрали тренировать 2 верхних начальных блока, т.е. мы заморозим # первые 249 слоев и разморозим остальные. #:

for layer in model.layers[:249]:

   layer.trainable = Falsefor layer in model.layers[249:]:

   layer.trainable = True

# нам нужно перекомпилировать модель, чтобы эти модификации вступили в силу# мы используем SGD с низкой скоростью обучения.

from keras.optimizers import SGD

model.compile(optimizer=SGD(lr=0.0001, momentum=0.9), loss=’categorical_crossentropy’)

# мы снова обучаем нашу модель (на этот раз, оттачивая верхние 2 начальных блока# вместе с верхними плотными слоями.

model.fit_generator(…)

Построить InceptionV3 на пользовательском входном тензоре

from keras.applications.inception_v3 import InceptionV3from keras.layers import Input

# это также может быть вывод другой модели или слоя Keras. #

input_tensor = Input(shape=(224, 224, 3))  # это предполагает K.image_data_format() == ‘channels_last’

model = InceptionV3(input_tensor=input_tensor, weights=’imagenet’, include_top=True)


Документация для отдельных моделей

МодельРазмерTop-1 точностьTop-5 точность ПараметрыГлубина
Xception88 MB0.7900.94522,910,480126
VGG16528 MB0.7130.901138,357,54423
VGG19549 MB0.7130.900143,667,24026
ResNet5098 MB0.7490.92125,636,712
ResNet101171 MB0.7640.92844,707,176
ResNet152232 MB0.7660.93160,419,944
ResNet50V298 MB0.7600.93025,613,800
ResNet101V2171 MB0.7720.93844,675,560
ResNet152V2232 MB0.7800.94260,380,648
InceptionV392 MB0.7790.93723,851,784159
InceptionResNetV2215 MB0.8030.95355,873,736572
MobileNet16 MB0.7040.8954,253,86488
MobileNetV214 MB0.7130.9013,538,98488
DenseNet12133 MB0.7500.9238,062,504121
DenseNet16957 MB0.7620.93214,307,880169
DenseNet20180 MB0.7730.93620,242,984201
NASNetMobile23 MB0.7440.9195,326,716
NASNetLarge343 MB0.8250.96088,949,818

Топ-1 и топ-5 точности относятся к производительности модели в наборе данных проверки достоверности ImageNet.

Глубина относится к топологической глубине сети. Сюда входят слои активации, слои пакетной нормализации и т.д.


Xception

keras.applications.xception.Xception(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

Модель Xception V1, с весами, предварительно подготовленными на ImageNet.

На ImageNet эта модель получает точность валидации топ-1 0,790 и точность валидации топ-5 0,945.

Данная модель и может быть построена как в формате данных ‘channels_first’ (каналы, высота, ширина), так и в формате данных ‘channels_last’ (высота, ширина, каналы).

Входной размер по умолчанию для данной модели — 299×299.

Аргументы

  • include_top: включать ли полностью подключенный слой в верхнюю часть сети.
  • weights: один из None (случайная инициализация) или ‘imageenet’ (предварительное обучение на ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • input_shape: необязательный кортеж-фигура, который должен быть указан только в том случае, если include_top — False (в противном случае входная форма должна быть (299, 299, 3). Она должна иметь ровно 3 входных канала, а ширина и высота должны быть не меньше 71. Например, (150, 150, 3) будет одно действительное значение.
  • pooling: Дополнительный режим объединения в пулы для извлечения функций, когда include_top — False.
  • None означает, что выход модели будет 4D тензорным выходом последнего сверточного блока.
  • avg» означает, что к выходу последнего сверточного блока будет применен глобальный средний пул, и, таким образом, на выходе модели будет 2D тензор.
  • «max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • Классы: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Пример Model Keras.

Ссылки

  • Xception: Глубокое обучение с помощью глубоко отделяемых свёртков

Лицензия

Эти веса обучаются самостоятельно и выпускаются под лицензией MIT.


VGG16

keras.applications.vgg16.VGG16(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

Модель VGG16, с грузами, предварительно подготовленными на ImageNet.

Данная модель может быть построена как в формате данных ‘channels_first’ (channels, height, width), так и в формате данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 224×224.

Аргументы

  • include_top: включать ли 3 полностью подключенных слоя в верхней части сети.
  • weights: один из None (случайная инициализация) или ‘imageenet’ (предварительное обучение на ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • input_shape: необязательный кортеж формы, который должен быть указан только в том случае, если include_top — False (иначе входная форма должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 32. Например, (200, 200, 3) должно быть одно действительное значение.
  • pooling: Дополнительный режим объединения в пулы для извлечения функции, когда include_top — False.
  • None означает, что выход модели будет 4D тензорным выходом последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применен глобальный средний пул, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • Очень глубокие сверточные сети для крупномасштабного распознавания изображений: пожалуйста, процитируйте эту статью, если вы используете VGG-модели в своей работе.

Лицензия

Эти веса портированы с весов, выпущенных VGG в Оксфорде по лицензии Creative Commons Attribution License.


VGG19

keras.applications.vgg19.VGG19(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

Модель VGG19, с грузами, предварительно подготовленными на ImageNet.

Данная модель может быть построена как в формате данных ‘channels_first’ (channels, height, width), так и в формате данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 224×224.

Аргументы

  • include_top: включать ли 3 полностью подключенных слоя в верхней части сети.
  • weights: один из None (случайная инициализация) или ‘imageenet’ (предварительное обучение на ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • input_shape: необязательный кортеж-фигура, который должен быть указан только в том случае, если include_top — False (иначе входная форма должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 32. Например, (200, 200, 3) должно быть одно действительное значение.
  • pooling: Дополнительный режим объединения в пулы для извлечения функции, когда include_top — False.
  • None означает, что выход модели будет 4D тензорным выходом последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применен глобальный средний пул, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • Очень глубокие сверточные сети для крупномасштабного распознавания изображений

Лицензия

Эти веса портированы с весов, выпущенных VGG в Оксфорде по лицензии Creative Commons Attribution License.


ResNet

keras.applications.resnet.ResNet50(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

keras.applications.resnet.ResNet101(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

keras.applications.resnet.ResNet152(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

keras.applications.resnet_v2.ResNet50V2(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

keras.applications.resnet_v2.ResNet101V2(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

keras.applications.resnet_v2.ResNet152V2(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

Модели ResNet, ResNetV2, с предварительно подготовленными весами на ImageNet.

Данная модель и может быть построена как в формате данных ‘channels_first’ (channels, height, width), так и в формате данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 224×224.

Аргументы

  • include_top: включать ли полностью подключенный слой в верхнюю часть сети.
  • weights: один из None (случайная инициализация) или ‘imageenet’ (предварительное обучение на ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • input_shape: необязательный кортеж-фигура, который должен быть указан только в том случае, если include_top — False (иначе входная форма должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 32. Например, (200, 200, 3) должно быть одно действительное значение.
  • pooling: Дополнительный режим объединения в пулы для извлечения функции, когда include_top — False.
  • None означает, что выход модели будет 4D тензорным выходом последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применен глобальный средний пул, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • ResNet: Глубокое остаточное обучение для распознавания изображений
  • ResNetV2: Отображение идентичности в глубоких остаточных сетях

Лицензия

Эти веса портируются из следующего:

  • ResNet: Оригинальный репозиторий Kaiming He по лицензии MIT.
  • ResNetV2: Facebook под BSD Лицензия.

InceptionV3

keras.applications.inception_v3.InceptionV3(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

Начальная модель V3, с весами, предварительно подготовленными на ImageNet.

Данная модель и может быть построена как в формате данных ‘channels_first’ (channels, height, width), так и в формате данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 299×299.

Аргументы

  • include_top: включать ли полностью подключенный слой в верхнюю часть сети.
  • weights: один из None (случайная инициализация) или ‘imageenet’ (предварительное обучение на ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • input_shape: необязательный кортеж-фигура, который должен быть указан только в том случае, если include_top — False (иначе форма входного сигнала должна быть (299, 299, 3) (с форматом данных ‘channels_last’) или (3, 299, 299) (с форматом данных ‘channels_first’). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 75. Например, (150, 150, 3) будет одно действительное значение.
  • pooling: Дополнительный режим объединения в пулы для извлечения функции, когда include_top — False.
  • None означает, что выход модели будет 4D тензорным выходом последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применен глобальный средний пул, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • Переосмысление архитектуры начала для компьютерного зрения

Лицензия

Эти веса выпущены под лицензией Apache.


InceptionResNetV2

keras.applications.inception_resnet_v2.InceptionResNetV2(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

Модель Inception-ResNet V2, с весами, предварительно подготовленными на ImageNet.

Данная модель и может быть построена как в формате данных ‘channels_first’ (channels, height, width), так и в формате данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 299×299.

Аргументы

  • include_top: включать ли полностью подключенный слой в верхнюю часть сети.
  • weights: один из None (случайная инициализация) или ‘imageenet’ (предварительное обучение на ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • input_shape: необязательный кортеж-фигура, который должен быть указан только в том случае, если include_top — False (иначе форма входного сигнала должна быть (299, 299, 3) (с форматом данных ‘channels_last’) или (3, 299, 299) (с форматом данных ‘channels_first’). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 75. Например, (150, 150, 3) будет одно действительное значение.
  • pooling: Дополнительный режим объединения в пулы для извлечения функции, когда include_top — False.
  • None означает, что выход модели будет 4D тензорным выходом последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применен глобальный средний пул, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • Inception-v4, Inception-ResNet и влияние остаточных связей на процесс обучения

Лицензия

Эти веса выпущены под лицензией Apache.


MobileNet

keras.applications.mobilenet.MobileNet(input_shape=None, alpha=1.0, depth_multiplier=1, dropout=1e-3, include_top=True, weights=’imagenet’, input_tensor=None, pooling=None, classes=1000)

Модель MobileNet, с предварительно подготовленными весами на ImageNet.

Данная модель и может быть построена как в формате данных ‘channels_first’ (channels, height, width), так и в формате данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 224×224.

Аргументы

  • input_shape: необязательная форма кортежа, указываемая только в том случае, если include_top является False (иначе форма входа должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 32. Например, (200, 200, 3) должно быть одно действительное значение.
  • alpha: контролирует ширину сети.
  • Если alpha< 1.0, то пропорционально уменьшается количество фильтров в каждом слое.
  • Если alpha> 1.0, пропорционально увеличивает количество фильтров в каждом слое.
  • Если alpha= 1, по умолчанию в каждом слое используется количество фильтров из бумаги.
  • depth_multiplier: умножитель глубины для глубинной свертки (также называемый умножителем разрешения).
  • dropout: процент отсева
  • include_top: включать ли полностью подключенный слой в верхнюю часть сети.
  • weights: None (случайная инициализация) или ‘imageenet’ (веса ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • pooling: Опциональный режим объединения в пулы для извлечения функций, когда include_top — False.
  • None означает, что на выходе модели будет 4D тензор последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применено глобальное усредненное объединение, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • MobileNets: эффективные сверточные нейронные сети для приложений мобильного видения

Лицензия

Эти веса выпущены под лицензией Apache.


DenseNet

keras.applications.densenet.DenseNet121(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

keras.applications.densenet.DenseNet169(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

keras.applications.densenet.DenseNet201(include_top=True, weights=’imagenet’, input_tensor=None, input_shape=None, pooling=None, classes=1000)

DenseNet models, with weights pre-trained on ImageNet.

Данная модель и может быть построена как с форматом данных ‘channels_first’ (channels, height, width), так и с форматом данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 224×224.

Аргументы

  • blocks: количество строительных блоков для четырех плотных слоев.
  • include_top: включать ли полностью подключенный слой в верхней части сети.
  • weights: один из None (случайная инициализация), ‘imagenet’ (предварительное обучение на ImageNet) или путь к файлу весов, который будет загружен.
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • input_shape: необязательный кортеж-фигура, который должен быть указан только в том случае, если include_top — False (иначе входная форма должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 32. Например, (200, 200, 3) должно быть одно действительное значение.
  • pooling: опциональный режим пула для извлечения функции из пула, когда include_top — False.
  • None означает, что выход модели будет 4D тензорным выходом последнего конволюционного блока.
  • avg означает, что к выходу последнего конволюционного блока будет применено глобальное усредненное объединение, и, таким образом, выход модели будет 2D тензором.
  • max означает, что будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top — True, и если аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • Плотно подключенные сверточные сети (CVPR 2017 — награда за лучшую работу)

Лицензия

Эти веса выпускаются по 3-пунктной лицензии BSD.


NASNet

keras.applications.nasnet.NASNetLarge(input_shape=None, include_top=True, weights=’imagenet’, input_tensor=None, pooling=None, classes=1000)

keras.applications.nasnet.NASNetMobile(input_shape=None, include_top=True, weights=’imagenet’, input_tensor=None, pooling=None, classes=1000)

Модели сети поиска нейронной архитектуры (NASNet), с предварительно подготовленными весами на ImageNet.

По умолчанию размер входного сигнала для модели NASNetLarge составляет 331×331, а для модели NASNetMobile — 224×224.

Аргументы

  • input_shape: необязательная форма кортежа, указываемая только в том случае, если include_top — False (иначе форма ввода должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’) для NASNetMobile, или (331, 331, 3) (с форматом данных ‘channels_last’), или (3, 331, 331) (с форматом данных ‘channels_first’) для NASNetLarge. Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 32. Например, (200, 200, 3) должно быть одно действительное значение.
  • include_top: включать ли полностью подключенный слой в верхней части сети.
  • weights: None (случайная инициализация) или ‘imageenet’ (веса ImageNet).
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • pooling: Опциональный режим объединения в пулы для извлечения функций, когда include_top — False.
  • None означает, что на выходе модели будет 4D тензор последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применено глобальное усредненное объединение, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras Model

Ссылки

  • Обучение переносимым архитектурам для распознавания масштабируемых изображений

Лицензия

Эти веса выпущены под лицензией Apache.


MobileNetV2

keras.applications.mobilenet_v2.MobileNetV2(input_shape=None, alpha=1.0, include_top=True, weights=’imagenet’, input_tensor=None, pooling=None, classes=1000)

Модель MobileNetV2, с грузами, предварительно подготовленными на ImageNet.

Данная модель и может быть построена как в формате данных ‘channels_first’ (channels, height, width), так и в формате данных ‘channels_last’ (height, width, channels).

Входной размер по умолчанию для данной модели — 224×224.

Аргументы

  • input_shape: необязательный кортеж формы, который должен быть указан, если вы хотите использовать модель с входным разрешением img, которое не является (224, 224, 3). Она должна иметь ровно 3 входных канала (224, 224, 3). Вы также можете пропустить эту опцию, если хотите сделать вывод о том, что модель с входным разрешением input_shape должна иметь ровно 3 входных канала (224, 224, 3). Если вы выберете и input_tensor, и input_shape, то при их совпадении будет использоваться input_shape, если же фигуры не совпадают, то мы забросим ошибку. Например (160, 160, 3) будет одно действительное значение.
  • alpha: контролирует ширину сети. Это известно как множитель ширины в бумаге MobileNetV2.
  • Если alpha< 1.0, пропорционально уменьшает количество фильтров в каждом слое.
  • Если alpha> 1.0, пропорционально увеличивает количество фильтров в каждом слое.
  • Если alpha= 1, по умолчанию в каждом слое используется количество фильтров из бумаги.
  • include_top: включать ли полностью подключенный слой в верхней части сети.
  • weights: один из None (случайная инициализация), ‘imagenet’ (предварительная подготовка на ImageNet), или путь к файлу весов, который будет загружен.
  • input_tensor: необязательный тензор Keras (т.е. вывод layers.Input()) для использования в качестве входного изображения для модели.
  • pooling: Необязательный режим объединения в пулы для извлечения функций, когда include_top — False.
  • None означает, что на выходе модели будет 4D тензор последнего конволюционного блока.
  • avg» означает, что к выходу последнего конволюционного блока будет применено глобальное усредненное объединение, и, таким образом, на выходе модели будет 2D тензор.
  • max» означает, что к выходу модели будет применено глобальное максимальное объединение.
  • classes: необязательное количество классов для классификации изображений, указывается только в том случае, если include_top имеет значение True и аргумент весов не указан.

Возвращает

Экземпляр Keras model

Исключения

ValueError: в случае недействительного аргумента для весов, или недействительной входной формы, альфа, строк, когда weights=’imagenet’

Ссылки

  • MobileNetV2: Инвертированные остатки и линейные узкие места

Лицензия

Эти веса выпущены под лицензией Apache.