Image Classification
KerasHub

Model Overview

Instantiates the ResNet architecture. This model is supported in both KerasCV and KerasHub. KerasCV will no longer be actively developed, so please try to use KerasHub.

Reference

The difference in ResNetV1 and ResNetV2 rests in the structure of their individual building blocks. In ResNetV2, the batch normalization and ReLU activation precede the convolution layers, as opposed to ResNetV1 where the batch normalization and ReLU activation are applied after the convolution layers.

Links

coming soon

Installation

Keras and KerasHub can be installed with:

pip install -U -q keras-hub
pip install -U -q keras

Jax, TensorFlow, and Torch come preinstalled in Kaggle Notebooks. For instructions on installing them in another environment see the Keras Getting Started page.

Presets

The following model checkpoints are provided by the Keras team. Weights have been ported from: https://huggingface.co/timm. Full code examples for each are available below.

Preset name Parameters Description
resnet_18_imagenet 11.19M 18-layer ResNet model pre-trained on the ImageNet 1k dataset at a 224x224 resolution
resnet_50_imagenet 23.56M 50-layer ResNet model pre-trained on the ImageNet 1k dataset at a 224x224 resolution
resnet_101_imagenet 42.61M 101-layer ResNet model pre-trained on the ImageNet 1k dataset at a 224x224 resolution
resnet_152_imagenet 58.30M 52-layer ResNet model pre-trained on the ImageNet 1k dataset at a 224x224 resolution

Example Usage

    # Pretrained ResNet backbone.
    model = keras_hub.models.ResNetBackbone.from_preset("resnet_101_imagenet")
    input_data = np.random.uniform(0, 1, size=(2, 224, 224, 3))
    model(input_data)

    # Randomly initialized ResNetV2 backbone with a custom config.
    model = keras_hub.models.ResNetBackbone(
        input_conv_filters=[64],
        input_conv_kernel_sizes=[7],
        stackwise_num_filters=[64, 64, 64],
        stackwise_num_blocks=[2, 2, 2],
        stackwise_num_strides=[1, 2, 2],
        block_type="basic_block",
        use_pre_activation=True,
    )
    model(input_data)
    # Use resnet for image classification task
    model = keras_hub.models.ImageClassifier.from_preset("resnet_101_imagenet")

    # User timm presets directly from hugingface
    model = keras_hub.models.ImageClassifier.from_preset('hf://timm/resnet101.a1_in1k')

Example Usage with Hugging Face URI

    # Pretrained ResNet backbone.
    model = keras_hub.models.ResNetBackbone.from_preset("hf://keras/resnet_101_imagenet")
    input_data = np.random.uniform(0, 1, size=(2, 224, 224, 3))
    model(input_data)

    # Randomly initialized ResNetV2 backbone with a custom config.
    model = keras_hub.models.ResNetBackbone(
        input_conv_filters=[64],
        input_conv_kernel_sizes=[7],
        stackwise_num_filters=[64, 64, 64],
        stackwise_num_blocks=[2, 2, 2],
        stackwise_num_strides=[1, 2, 2],
        block_type="basic_block",
        use_pre_activation=True,
    )
    model(input_data)
    # Use resnet for image classification task
    model = keras_hub.models.ImageClassifier.from_preset("hf://keras/resnet_101_imagenet")

    # User timm presets directly from hugingface
    model = keras_hub.models.ImageClassifier.from_preset('hf://timm/resnet101.a1_in1k')
Downloads last month
12
Inference Examples
Inference API (serverless) does not yet support keras-hub models for this pipeline type.

Collection including keras/resnet_101_imagenet