|
--- |
|
library_name: keras-hub |
|
license: apache-2.0 |
|
tags: |
|
- image-classification |
|
--- |
|
## 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** |
|
|
|
- [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) |
|
|
|
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](https://keras.io/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 |
|
```python |
|
# Pretrained ResNet backbone. |
|
model = keras_hub.models.ResNetBackbone.from_preset("resnet_152_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_152_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 |
|
|
|
```python |
|
# Pretrained ResNet backbone. |
|
model = keras_hub.models.ResNetBackbone.from_preset("hf://keras/resnet_152_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_152_imagenet") |
|
|
|
# User timm presets directly from hugingface |
|
model = keras_hub.models.ImageClassifier.from_preset('hf://timm/resnet101.a1_in1k') |
|
``` |