From e7f3d67e1b3c0c48eeac687ac9d5dcd7648d69e2 Mon Sep 17 00:00:00 2001 From: divyashreepathihalli Date: Fri, 18 Oct 2024 19:03:44 +0000 Subject: [PATCH 1/5] update sam docstring to show correct backbone in docstring --- keras_hub/src/models/sam/sam_image_segmenter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keras_hub/src/models/sam/sam_image_segmenter.py b/keras_hub/src/models/sam/sam_image_segmenter.py index ed4b63ecd0..19b0035cb7 100644 --- a/keras_hub/src/models/sam/sam_image_segmenter.py +++ b/keras_hub/src/models/sam/sam_image_segmenter.py @@ -31,7 +31,7 @@ class SAMImageSegmenter(ImageSegmenter): Args: - backbone: A `keras_hub.models.VGGBackbone` instance. + backbone: A `keras_hub.models.SAMBackbone` instance. Example: Load pretrained model using `from_preset`. From fc2b94785e293144008dbb32f71eed94334b9fe3 Mon Sep 17 00:00:00 2001 From: divyashreepathihalli Date: Fri, 18 Oct 2024 20:07:33 +0000 Subject: [PATCH 2/5] update mix_transformer to mit --- keras_hub/api/layers/__init__.py | 4 +- keras_hub/api/models/__init__.py | 10 ++--- keras_hub/src/models/mit/__init__.py | 6 +++ .../mit_backbone.py} | 8 +--- keras_hub/src/models/mit/mit_backbone_test.py | 45 +++++++++++++++++++ .../mit_classifier.py} | 6 +-- .../mit_classifier_preprocessor.py} | 8 +--- .../mit_classifier_test.py} | 8 +--- .../mit_image_converter.py} | 2 +- .../mit_layers.py} | 0 .../mit_presets.py} | 0 .../mix_transformer_backbone_test.py | 4 +- .../src/models/mix_transformer/__init__.py | 12 ----- 13 files changed, 65 insertions(+), 48 deletions(-) create mode 100644 keras_hub/src/models/mit/__init__.py rename keras_hub/src/models/{mix_transformer/mix_transformer_backbone.py => mit/mit_backbone.py} (96%) create mode 100644 keras_hub/src/models/mit/mit_backbone_test.py rename keras_hub/src/models/{mix_transformer/mix_transformer_classifier.py => mit/mit_classifier.py} (64%) rename keras_hub/src/models/{mix_transformer/mix_transformer_classifier_preprocessor.py => mit/mit_classifier_preprocessor.py} (64%) rename keras_hub/src/models/{mix_transformer/mix_transformer_classifier_test.py => mit/mit_classifier_test.py} (87%) rename keras_hub/src/models/{mix_transformer/mix_transformer_image_converter.py => mit/mit_image_converter.py} (81%) rename keras_hub/src/models/{mix_transformer/mix_transformer_layers.py => mit/mit_layers.py} (100%) rename keras_hub/src/models/{mix_transformer/mix_transformer_presets.py => mit/mit_presets.py} (100%) rename keras_hub/src/models/{mix_transformer => mit}/mix_transformer_backbone_test.py (93%) delete mode 100644 keras_hub/src/models/mix_transformer/__init__.py diff --git a/keras_hub/api/layers/__init__.py b/keras_hub/api/layers/__init__.py index a32da3a42a..9a310ad227 100644 --- a/keras_hub/api/layers/__init__.py +++ b/keras_hub/api/layers/__init__.py @@ -40,9 +40,7 @@ from keras_hub.src.models.densenet.densenet_image_converter import ( DenseNetImageConverter, ) -from keras_hub.src.models.mix_transformer.mix_transformer_image_converter import ( - MiTImageConverter, -) +from keras_hub.src.models.mit.mit_image_converter import MiTImageConverter from keras_hub.src.models.pali_gemma.pali_gemma_image_converter import ( PaliGemmaImageConverter, ) diff --git a/keras_hub/api/models/__init__.py b/keras_hub/api/models/__init__.py index 4f16fcc3eb..826c72ad61 100644 --- a/keras_hub/api/models/__init__.py +++ b/keras_hub/api/models/__init__.py @@ -202,13 +202,9 @@ MistralCausalLMPreprocessor, ) from keras_hub.src.models.mistral.mistral_tokenizer import MistralTokenizer -from keras_hub.src.models.mix_transformer.mix_transformer_backbone import ( - MiTBackbone, -) -from keras_hub.src.models.mix_transformer.mix_transformer_classifier import ( - MiTImageClassifier, -) -from keras_hub.src.models.mix_transformer.mix_transformer_classifier_preprocessor import ( +from keras_hub.src.models.mit.mit_backbone import MiTBackbone +from keras_hub.src.models.mit.mit_classifier import MiTImageClassifier +from keras_hub.src.models.mit.mit_classifier_preprocessor import ( MiTImageClassifierPreprocessor, ) from keras_hub.src.models.mobilenet.mobilenet_backbone import MobileNetBackbone diff --git a/keras_hub/src/models/mit/__init__.py b/keras_hub/src/models/mit/__init__.py new file mode 100644 index 0000000000..61fd9cc540 --- /dev/null +++ b/keras_hub/src/models/mit/__init__.py @@ -0,0 +1,6 @@ +from keras_hub.src.models.mit.mit_backbone import MiTBackbone +from keras_hub.src.models.mit.mit_classifier import MiTImageClassifier +from keras_hub.src.models.mit.mit_presets import backbone_presets +from keras_hub.src.utils.preset_utils import register_presets + +register_presets(backbone_presets, MiTBackbone) diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_backbone.py b/keras_hub/src/models/mit/mit_backbone.py similarity index 96% rename from keras_hub/src/models/mix_transformer/mix_transformer_backbone.py rename to keras_hub/src/models/mit/mit_backbone.py index e8f881aee3..1398fe8eee 100644 --- a/keras_hub/src/models/mix_transformer/mix_transformer_backbone.py +++ b/keras_hub/src/models/mit/mit_backbone.py @@ -4,12 +4,8 @@ from keras_hub.src.api_export import keras_hub_export from keras_hub.src.models.feature_pyramid_backbone import FeaturePyramidBackbone -from keras_hub.src.models.mix_transformer.mix_transformer_layers import ( - HierarchicalTransformerEncoder, -) -from keras_hub.src.models.mix_transformer.mix_transformer_layers import ( - OverlappingPatchingAndEmbedding, -) +from keras_hub.src.models.mit.mit_layers import HierarchicalTransformerEncoder +from keras_hub.src.models.mit.mit_layers import OverlappingPatchingAndEmbedding @keras_hub_export("keras_hub.models.MiTBackbone") diff --git a/keras_hub/src/models/mit/mit_backbone_test.py b/keras_hub/src/models/mit/mit_backbone_test.py new file mode 100644 index 0000000000..553a266e5b --- /dev/null +++ b/keras_hub/src/models/mit/mit_backbone_test.py @@ -0,0 +1,45 @@ +import numpy as np +import pytest + +from keras_hub.src.models.mit.mit_backbone import MiTBackbone +from keras_hub.src.tests.test_case import TestCase + + +class MiTBackboneTest(TestCase): + def setUp(self): + self.init_kwargs = { + "depths": [2, 2], + "image_shape": (16, 16, 3), + "hidden_dims": [4, 8], + "num_layers": 2, + "blockwise_num_heads": [1, 2], + "blockwise_sr_ratios": [8, 4], + "max_drop_path_rate": 0.1, + "patch_sizes": [7, 3], + "strides": [4, 2], + } + self.input_size = 16 + self.input_data = np.ones( + (2, self.input_size, self.input_size, 3), dtype="float32" + ) + + def test_backbone_basics(self): + self.run_vision_backbone_test( + cls=MiTBackbone, + init_kwargs=self.init_kwargs, + input_data=self.input_data, + expected_output_shape=(2, 2, 2, 8), + expected_pyramid_output_keys=["P1", "P2"], + expected_pyramid_image_sizes=[(4, 4), (2, 2)], + run_quantization_check=False, + run_mixed_precision_check=False, + run_data_format_check=False, + ) + + @pytest.mark.large + def test_saved_model(self): + self.run_model_saving_test( + cls=MiTBackbone, + init_kwargs=self.init_kwargs, + input_data=self.input_data, + ) diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_classifier.py b/keras_hub/src/models/mit/mit_classifier.py similarity index 64% rename from keras_hub/src/models/mix_transformer/mix_transformer_classifier.py rename to keras_hub/src/models/mit/mit_classifier.py index beab6646ba..ba2c3b4d82 100644 --- a/keras_hub/src/models/mix_transformer/mix_transformer_classifier.py +++ b/keras_hub/src/models/mit/mit_classifier.py @@ -1,9 +1,7 @@ from keras_hub.src.api_export import keras_hub_export from keras_hub.src.models.image_classifier import ImageClassifier -from keras_hub.src.models.mix_transformer.mix_transformer_backbone import ( - MiTBackbone, -) -from keras_hub.src.models.mix_transformer.mix_transformer_classifier_preprocessor import ( +from keras_hub.src.models.mit.mit_backbone import MiTBackbone +from keras_hub.src.models.mit.mit_classifier_preprocessor import ( MiTImageClassifierPreprocessor, ) diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_classifier_preprocessor.py b/keras_hub/src/models/mit/mit_classifier_preprocessor.py similarity index 64% rename from keras_hub/src/models/mix_transformer/mix_transformer_classifier_preprocessor.py rename to keras_hub/src/models/mit/mit_classifier_preprocessor.py index 61c994c5fb..d3859c30d6 100644 --- a/keras_hub/src/models/mix_transformer/mix_transformer_classifier_preprocessor.py +++ b/keras_hub/src/models/mit/mit_classifier_preprocessor.py @@ -2,12 +2,8 @@ from keras_hub.src.models.image_classifier_preprocessor import ( ImageClassifierPreprocessor, ) -from keras_hub.src.models.mix_transformer.mix_transformer_backbone import ( - MiTBackbone, -) -from keras_hub.src.models.mix_transformer.mix_transformer_image_converter import ( - MiTImageConverter, -) +from keras_hub.src.models.mit.mit_backbone import MiTBackbone +from keras_hub.src.models.mit.mit_image_converter import MiTImageConverter @keras_hub_export("keras_hub.models.MiTImageClassifierPreprocessor") diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_classifier_test.py b/keras_hub/src/models/mit/mit_classifier_test.py similarity index 87% rename from keras_hub/src/models/mix_transformer/mix_transformer_classifier_test.py rename to keras_hub/src/models/mit/mit_classifier_test.py index fb7ff5ce2b..006853509b 100644 --- a/keras_hub/src/models/mix_transformer/mix_transformer_classifier_test.py +++ b/keras_hub/src/models/mit/mit_classifier_test.py @@ -1,12 +1,8 @@ import numpy as np import pytest -from keras_hub.src.models.mix_transformer.mix_transformer_backbone import ( - MiTBackbone, -) -from keras_hub.src.models.mix_transformer.mix_transformer_classifier import ( - MiTImageClassifier, -) +from keras_hub.src.models.mit.mit_backbone import MiTBackbone +from keras_hub.src.models.mit.mit_classifier import MiTImageClassifier from keras_hub.src.tests.test_case import TestCase diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_image_converter.py b/keras_hub/src/models/mit/mit_image_converter.py similarity index 81% rename from keras_hub/src/models/mix_transformer/mix_transformer_image_converter.py rename to keras_hub/src/models/mit/mit_image_converter.py index e59ea26b66..269fcb88fd 100644 --- a/keras_hub/src/models/mix_transformer/mix_transformer_image_converter.py +++ b/keras_hub/src/models/mit/mit_image_converter.py @@ -1,6 +1,6 @@ from keras_hub.src.api_export import keras_hub_export from keras_hub.src.layers.preprocessing.image_converter import ImageConverter -from keras_hub.src.models.mix_transformer import MiTBackbone +from keras_hub.src.models.mit import MiTBackbone @keras_hub_export("keras_hub.layers.MiTImageConverter") diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_layers.py b/keras_hub/src/models/mit/mit_layers.py similarity index 100% rename from keras_hub/src/models/mix_transformer/mix_transformer_layers.py rename to keras_hub/src/models/mit/mit_layers.py diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_presets.py b/keras_hub/src/models/mit/mit_presets.py similarity index 100% rename from keras_hub/src/models/mix_transformer/mix_transformer_presets.py rename to keras_hub/src/models/mit/mit_presets.py diff --git a/keras_hub/src/models/mix_transformer/mix_transformer_backbone_test.py b/keras_hub/src/models/mit/mix_transformer_backbone_test.py similarity index 93% rename from keras_hub/src/models/mix_transformer/mix_transformer_backbone_test.py rename to keras_hub/src/models/mit/mix_transformer_backbone_test.py index b3840f5c07..553a266e5b 100644 --- a/keras_hub/src/models/mix_transformer/mix_transformer_backbone_test.py +++ b/keras_hub/src/models/mit/mix_transformer_backbone_test.py @@ -1,9 +1,7 @@ import numpy as np import pytest -from keras_hub.src.models.mix_transformer.mix_transformer_backbone import ( - MiTBackbone, -) +from keras_hub.src.models.mit.mit_backbone import MiTBackbone from keras_hub.src.tests.test_case import TestCase diff --git a/keras_hub/src/models/mix_transformer/__init__.py b/keras_hub/src/models/mix_transformer/__init__.py deleted file mode 100644 index f2292a35ad..0000000000 --- a/keras_hub/src/models/mix_transformer/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from keras_hub.src.models.mix_transformer.mix_transformer_backbone import ( - MiTBackbone, -) -from keras_hub.src.models.mix_transformer.mix_transformer_classifier import ( - MiTImageClassifier, -) -from keras_hub.src.models.mix_transformer.mix_transformer_presets import ( - backbone_presets, -) -from keras_hub.src.utils.preset_utils import register_presets - -register_presets(backbone_presets, MiTBackbone) From 955c66030bf02e451008317269fa99ef8a798fac Mon Sep 17 00:00:00 2001 From: divyashreepathihalli Date: Fri, 18 Oct 2024 20:19:07 +0000 Subject: [PATCH 3/5] update file names --- .../models/mit/{mit_classifier.py => mit_image_classifier.py} | 2 +- ...ier_preprocessor.py => mit_image_classifier_preprocessor.py} | 0 .../{mit_classifier_test.py => mit_image_classifier_test.py} | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename keras_hub/src/models/mit/{mit_classifier.py => mit_image_classifier.py} (84%) rename keras_hub/src/models/mit/{mit_classifier_preprocessor.py => mit_image_classifier_preprocessor.py} (100%) rename keras_hub/src/models/mit/{mit_classifier_test.py => mit_image_classifier_test.py} (95%) diff --git a/keras_hub/src/models/mit/mit_classifier.py b/keras_hub/src/models/mit/mit_image_classifier.py similarity index 84% rename from keras_hub/src/models/mit/mit_classifier.py rename to keras_hub/src/models/mit/mit_image_classifier.py index ba2c3b4d82..370920ddf9 100644 --- a/keras_hub/src/models/mit/mit_classifier.py +++ b/keras_hub/src/models/mit/mit_image_classifier.py @@ -1,7 +1,7 @@ from keras_hub.src.api_export import keras_hub_export from keras_hub.src.models.image_classifier import ImageClassifier from keras_hub.src.models.mit.mit_backbone import MiTBackbone -from keras_hub.src.models.mit.mit_classifier_preprocessor import ( +from keras_hub.src.models.mit.mit_image_classifier_preprocessor import ( MiTImageClassifierPreprocessor, ) diff --git a/keras_hub/src/models/mit/mit_classifier_preprocessor.py b/keras_hub/src/models/mit/mit_image_classifier_preprocessor.py similarity index 100% rename from keras_hub/src/models/mit/mit_classifier_preprocessor.py rename to keras_hub/src/models/mit/mit_image_classifier_preprocessor.py diff --git a/keras_hub/src/models/mit/mit_classifier_test.py b/keras_hub/src/models/mit/mit_image_classifier_test.py similarity index 95% rename from keras_hub/src/models/mit/mit_classifier_test.py rename to keras_hub/src/models/mit/mit_image_classifier_test.py index 006853509b..058ea4fbb2 100644 --- a/keras_hub/src/models/mit/mit_classifier_test.py +++ b/keras_hub/src/models/mit/mit_image_classifier_test.py @@ -2,7 +2,7 @@ import pytest from keras_hub.src.models.mit.mit_backbone import MiTBackbone -from keras_hub.src.models.mit.mit_classifier import MiTImageClassifier +from keras_hub.src.models.mit.mit_image_classifier import MiTImageClassifier from keras_hub.src.tests.test_case import TestCase From 9c34e2d81056df2ea7689b702df7ac7d515f6be6 Mon Sep 17 00:00:00 2001 From: divyashreepathihalli Date: Fri, 18 Oct 2024 20:24:34 +0000 Subject: [PATCH 4/5] update init files --- keras_hub/api/models/__init__.py | 4 ++-- keras_hub/src/models/mit/__init__.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keras_hub/api/models/__init__.py b/keras_hub/api/models/__init__.py index 826c72ad61..408327f9cc 100644 --- a/keras_hub/api/models/__init__.py +++ b/keras_hub/api/models/__init__.py @@ -203,8 +203,8 @@ ) from keras_hub.src.models.mistral.mistral_tokenizer import MistralTokenizer from keras_hub.src.models.mit.mit_backbone import MiTBackbone -from keras_hub.src.models.mit.mit_classifier import MiTImageClassifier -from keras_hub.src.models.mit.mit_classifier_preprocessor import ( +from keras_hub.src.models.mit.mit_image_classifier import MiTImageClassifier +from keras_hub.src.models.mit.mit_image_classifier_preprocessor import ( MiTImageClassifierPreprocessor, ) from keras_hub.src.models.mobilenet.mobilenet_backbone import MobileNetBackbone diff --git a/keras_hub/src/models/mit/__init__.py b/keras_hub/src/models/mit/__init__.py index 61fd9cc540..f581202b1c 100644 --- a/keras_hub/src/models/mit/__init__.py +++ b/keras_hub/src/models/mit/__init__.py @@ -1,5 +1,5 @@ from keras_hub.src.models.mit.mit_backbone import MiTBackbone -from keras_hub.src.models.mit.mit_classifier import MiTImageClassifier +from keras_hub.src.models.mit.mit_image_classifier import MiTImageClassifier from keras_hub.src.models.mit.mit_presets import backbone_presets from keras_hub.src.utils.preset_utils import register_presets From 17a3932f0e313abec0ec954a989f1ccdbf641352 Mon Sep 17 00:00:00 2001 From: divyashreepathihalli Date: Fri, 18 Oct 2024 21:26:42 +0000 Subject: [PATCH 5/5] address matt's feedback --- keras_hub/src/models/mit/mit_backbone.py | 2 +- .../src/models/mobilenet/mobilenet_backbone.py | 2 +- keras_hub/src/models/resnet/resnet_backbone.py | 2 +- keras_hub/src/models/vae/vae_backbone.py | 14 +++++++++++++- keras_hub/src/models/vgg/vgg_backbone.py | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/keras_hub/src/models/mit/mit_backbone.py b/keras_hub/src/models/mit/mit_backbone.py index 1398fe8eee..4ac0402fbd 100644 --- a/keras_hub/src/models/mit/mit_backbone.py +++ b/keras_hub/src/models/mit/mit_backbone.py @@ -57,7 +57,7 @@ def __init__( ```python images = np.ones(shape=(1, 96, 96, 3)) labels = np.zeros(shape=(1, 96, 96, 1)) - backbone = keras_hub.models.MiTBackbone.from_preset("mit_b0_imagenet") + backbone = keras_hub.models.MiTBackbone.from_preset("mit_b0_ade20k_512") # Evaluate model model(images) diff --git a/keras_hub/src/models/mobilenet/mobilenet_backbone.py b/keras_hub/src/models/mobilenet/mobilenet_backbone.py index d3aff7e9b8..c4fe6f3413 100644 --- a/keras_hub/src/models/mobilenet/mobilenet_backbone.py +++ b/keras_hub/src/models/mobilenet/mobilenet_backbone.py @@ -96,7 +96,7 @@ def __init__( stackwise_activation, output_num_filters, inverted_res_block, - image_shape=(224, 224, 3), + image_shape=(None, None, 3), input_activation="hard_swish", output_activation="hard_swish", depth_multiplier=1.0, diff --git a/keras_hub/src/models/resnet/resnet_backbone.py b/keras_hub/src/models/resnet/resnet_backbone.py index bc8def804a..aee033cdda 100644 --- a/keras_hub/src/models/resnet/resnet_backbone.py +++ b/keras_hub/src/models/resnet/resnet_backbone.py @@ -68,7 +68,7 @@ class ResNetBackbone(FeaturePyramidBackbone): input_data = np.random.uniform(0, 1, size=(2, 224, 224, 3)) # Pretrained ResNet backbone. - model = keras_hub.models.ResNetBackbone.from_preset("resnet50") + model = keras_hub.models.ResNetBackbone.from_preset("resnet_50_imagenet") model(input_data) # Randomly initialized ResNetV2 backbone with a custom config. diff --git a/keras_hub/src/models/vae/vae_backbone.py b/keras_hub/src/models/vae/vae_backbone.py index c84986314d..606107d17f 100644 --- a/keras_hub/src/models/vae/vae_backbone.py +++ b/keras_hub/src/models/vae/vae_backbone.py @@ -10,7 +10,7 @@ class VAEBackbone(Backbone): - """VAE backbone used in latent diffusion models. + """Variational Autoencoder(VAE) backbone used in latent diffusion models. When encoding, this model generates mean and log variance of the input images. When decoding, it reconstructs images from the latent space. @@ -51,6 +51,18 @@ class VAEBackbone(Backbone): `"channels_last"`. dtype: `None` or str or `keras.mixed_precision.DTypePolicy`. The dtype to use for the model's computations and weights. + + Example: + ```Python + backbone = VAEBackbone( + encoder_num_filters=[32, 32, 32, 32], + encoder_num_blocks=[1, 1, 1, 1], + decoder_num_filters=[32, 32, 32, 32], + decoder_num_blocks=[1, 1, 1, 1], + ) + input_data = ops.ones((2, self.height, self.width, 3)) + output = backbone(input_data) + ``` """ def __init__( diff --git a/keras_hub/src/models/vgg/vgg_backbone.py b/keras_hub/src/models/vgg/vgg_backbone.py index 504624a6c4..ef91c8689d 100644 --- a/keras_hub/src/models/vgg/vgg_backbone.py +++ b/keras_hub/src/models/vgg/vgg_backbone.py @@ -20,7 +20,7 @@ class VGGBackbone(Backbone): stackwise_num_filters: list of ints, filter size for convolutional blocks per VGG block. For both VGG16 and VGG19 this is [ 64, 128, 256, 512, 512]. - image_shape: tuple, optional shape tuple, defaults to (224, 224, 3). + image_shape: tuple, optional shape tuple, defaults to (None, None, 3). Examples: ```python