Source code for composer.models.efficientnetb0.model
# Copyright 2022 MosaicML Composer authors
# SPDX-License-Identifier: Apache-2.0
"""A :class:`.ComposerClassifier` wrapper around the EfficientNet-b0 architecture."""
from composer.models.efficientnetb0.efficientnets import EfficientNet
from composer.models.tasks import ComposerClassifier
__all__ = ['composer_efficientnetb0']
[docs]def composer_efficientnetb0(num_classes: int = 1000, drop_connect_rate: float = 0.2) -> ComposerClassifier:
"""Helper function to create a :class:`.ComposerClassifier` with an EfficientNet-b0 architecture.
See `Rethinking Model Scaling for Convolutional Neural Networks <https://arxiv.org/abs/1905.11946>`_
(Tan et al, 2019) for more details.
Args:
num_classes (int, optional): The number of classes. Needed for classification tasks. Default: ``1000``.
drop_connect_rate (float, optional): Probability of dropping a sample within a block before identity
connection. Default: ``0.2``.
Returns:
ComposerModel: instance of :class:`.ComposerClassifier` with a EfficientNet-B0 model.
Example:
.. testcode::
from composer.models import composer_efficientnetb0
model = composer_efficientnetb0() # creates EfficientNet-b0 for image classification
"""
model = EfficientNet.get_model_from_name(model_name='efficientnet-b0',
num_classes=num_classes,
drop_connect_rate=drop_connect_rate)
composer_model = ComposerClassifier(module=model)
return composer_model