DeiTImageClassifier
classkeras_hub.models.DeiTImageClassifier(
backbone,
num_classes,
preprocessor=None,
pooling="token",
activation=None,
dropout=0.0,
head_dtype=None,
**kwargs
)
DeiT image classification task.
DeiTImageClassifier
tasks wrap a keras_hub.models.DeiTBackbone
and
a keras_hub.models.Preprocessor
to create a model that can be used for
image classification. DeiTImageClassifier
tasks take an additional
num_classes
argument, controlling the number of predicted output classes.
To fine-tune with fit()
, pass a dataset containing tuples of (x, y)
labels where x
is a string and y
is a integer from [0, num_classes)
.
Not that unlike keras_hub.model.ImageClassifier
, the DeiTImageClassifier
we pluck out cls_token
which is first seqence from the backbone.
Arguments
keras_hub.models.DeiTBackbone
instance or a keras.Model
.None
, a keras_hub.models.Preprocessor
instance,
a keras.Layer
instance, or a callable. If None
no preprocessing
will be applied to the inputs."token"
: A single vector (class token) representing the
overall image features.
"gap"
: A single vector representing the average features
across the spatial dimensions.None
, str, or callable. The activation function to use on
the Dense
layer. Set activation=None
to return the output
logits. Defaults to None
.None
, str, or keras.mixed_precision.DTypePolicy
. The
dtype to use for the classification head's computations and weights.Examples
Call predict()
to run inference.
# Load preset and train
images = np.random.randint(0, 256, size=(2, 384, 384, 3))
classifier = keras_hub.models.DeiTImageClassifier.from_preset(
"hf://facebook/deit-base-distilled-patch16-384"
)
classifier.predict(images)
Call fit()
on a single batch.
# Load preset and train
images = np.random.randint(0, 256, size=(2, 384, 384, 3))
labels = [0, 3]
classifier = keras_hub.models.DeiTImageClassifier.from_preset(
"hf://facebook/deit-base-distilled-patch16-384"
)
classifier.fit(x=images, y=labels, batch_size=2)
Call fit()
with custom loss, optimizer and backbone.
classifier = keras_hub.models.DeiTImageClassifier.from_preset(
"hf://facebook/deit-base-distilled-patch16-384"
)
classifier.compile(
loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
optimizer=keras.optimizers.Adam(5e-5),
)
classifier.backbone.trainable = False
classifier.fit(x=images, y=labels, batch_size=2)
Custom backbone.
images = np.random.randint(0, 256, size=(2, 384, 384, 3))
labels = [0, 3]
backbone = keras_hub.models.DeiTBackbone(
image_shape = (384, 384, 3),
patch_size=16,
num_layers=6,
num_heads=3,
hidden_dim=768,
intermediate_dim=2048
)
classifier = keras_hub.models.DeiTImageClassifier(
backbone=backbone,
num_classes=4,
)
classifier.fit(x=images, y=labels, batch_size=2)
from_preset
methodDeiTImageClassifier.from_preset(preset, load_weights=True, **kwargs)
Instantiate a keras_hub.models.Task
from a model preset.
A preset is a directory of configs, weights and other file assets used
to save and load a pre-trained model. The preset
can be passed as
one of:
'bert_base_en'
'kaggle://user/bert/keras/bert_base_en'
'hf://user/bert_base_en'
'./bert_base_en'
For any Task
subclass, you can run cls.presets.keys()
to list all
built-in presets available on the class.
This constructor can be called in one of two ways. Either from a task
specific base class like keras_hub.models.CausalLM.from_preset()
, or
from a model class like
keras_hub.models.BertTextClassifier.from_preset()
.
If calling from the a base class, the subclass of the returning object
will be inferred from the config in the preset directory.
Arguments
True
, saved weights will be loaded into
the model architecture. If False
, all weights will be
randomly initialized.Examples
# Load a Gemma generative task.
causal_lm = keras_hub.models.CausalLM.from_preset(
"gemma_2b_en",
)
# Load a Bert classification task.
model = keras_hub.models.TextClassifier.from_preset(
"bert_base_en",
num_classes=2,
)
Preset | Parameters | Description |
---|---|---|
deit_tiny_distilled_patch16_224_imagenet | 5.52M | DeiT-T16 model pre-trained on the ImageNet 1k dataset with image resolution of 224x224 |
deit_small_distilled_patch16_224_imagenet | 21.67M | DeiT-S16 model pre-trained on the ImageNet 1k dataset with image resolution of 224x224 |
deit_base_distilled_patch16_224_imagenet | 85.80M | DeiT-B16 model pre-trained on the ImageNet 1k dataset with image resolution of 224x224 |
deit_base_distilled_patch16_384_imagenet | 86.09M | DeiT-B16 model pre-trained on the ImageNet 1k dataset with image resolution of 384x384 |
backbone
propertykeras_hub.models.DeiTImageClassifier.backbone
A keras_hub.models.Backbone
model with the core architecture.
preprocessor
propertykeras_hub.models.DeiTImageClassifier.preprocessor
A keras_hub.models.Preprocessor
layer used to preprocess input.