keras-hub-nightly 0.16.1.dev202410020340__py3-none-any.whl → 0.19.0.dev202501260345__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- keras_hub/api/layers/__init__.py +21 -3
- keras_hub/api/models/__init__.py +71 -12
- keras_hub/api/tokenizers/__init__.py +1 -1
- keras_hub/src/bounding_box/__init__.py +2 -0
- keras_hub/src/bounding_box/converters.py +102 -12
- keras_hub/src/layers/modeling/f_net_encoder.py +1 -1
- keras_hub/src/layers/modeling/masked_lm_head.py +2 -1
- keras_hub/src/layers/modeling/reversible_embedding.py +3 -16
- keras_hub/src/layers/modeling/rms_normalization.py +36 -0
- keras_hub/src/layers/modeling/rotary_embedding.py +3 -2
- keras_hub/src/layers/modeling/token_and_position_embedding.py +1 -1
- keras_hub/src/layers/modeling/transformer_decoder.py +8 -6
- keras_hub/src/layers/modeling/transformer_encoder.py +29 -7
- keras_hub/src/layers/preprocessing/audio_converter.py +3 -7
- keras_hub/src/layers/preprocessing/image_converter.py +170 -34
- keras_hub/src/metrics/bleu.py +4 -3
- keras_hub/src/models/albert/albert_presets.py +4 -12
- keras_hub/src/models/albert/albert_text_classifier.py +7 -7
- keras_hub/src/models/backbone.py +3 -14
- keras_hub/src/models/bart/bart_backbone.py +4 -4
- keras_hub/src/models/bart/bart_presets.py +3 -9
- keras_hub/src/models/bart/bart_seq_2_seq_lm.py +9 -8
- keras_hub/src/models/basnet/__init__.py +5 -0
- keras_hub/src/models/basnet/basnet.py +122 -0
- keras_hub/src/models/basnet/basnet_backbone.py +366 -0
- keras_hub/src/models/basnet/basnet_image_converter.py +8 -0
- keras_hub/src/models/basnet/basnet_preprocessor.py +14 -0
- keras_hub/src/models/basnet/basnet_presets.py +17 -0
- keras_hub/src/models/bert/bert_presets.py +14 -32
- keras_hub/src/models/bert/bert_text_classifier.py +3 -3
- keras_hub/src/models/bloom/bloom_presets.py +8 -24
- keras_hub/src/models/causal_lm.py +56 -12
- keras_hub/src/models/clip/__init__.py +5 -0
- keras_hub/src/models/clip/clip_backbone.py +286 -0
- keras_hub/src/models/clip/clip_encoder_block.py +19 -4
- keras_hub/src/models/clip/clip_image_converter.py +8 -0
- keras_hub/src/models/clip/clip_presets.py +93 -0
- keras_hub/src/models/clip/clip_text_encoder.py +4 -1
- keras_hub/src/models/clip/clip_tokenizer.py +18 -3
- keras_hub/src/models/clip/clip_vision_embedding.py +101 -0
- keras_hub/src/models/clip/clip_vision_encoder.py +159 -0
- keras_hub/src/models/csp_darknet/csp_darknet_backbone.py +2 -1
- keras_hub/src/models/csp_darknet/csp_darknet_image_classifier.py +0 -109
- keras_hub/src/models/deberta_v3/deberta_v3_backbone.py +1 -1
- keras_hub/src/models/deberta_v3/deberta_v3_presets.py +5 -15
- keras_hub/src/models/deberta_v3/deberta_v3_text_classifier.py +4 -4
- keras_hub/src/models/deberta_v3/disentangled_attention_encoder.py +4 -4
- keras_hub/src/models/deberta_v3/disentangled_self_attention.py +3 -2
- keras_hub/src/models/deberta_v3/relative_embedding.py +1 -1
- keras_hub/src/models/deeplab_v3/__init__.py +7 -0
- keras_hub/src/models/deeplab_v3/deeplab_v3_backbone.py +200 -0
- keras_hub/src/models/deeplab_v3/deeplab_v3_image_converter.py +10 -0
- keras_hub/src/models/deeplab_v3/deeplab_v3_image_segmeter_preprocessor.py +16 -0
- keras_hub/src/models/deeplab_v3/deeplab_v3_layers.py +215 -0
- keras_hub/src/models/deeplab_v3/deeplab_v3_presets.py +17 -0
- keras_hub/src/models/deeplab_v3/deeplab_v3_segmenter.py +111 -0
- keras_hub/src/models/densenet/densenet_backbone.py +6 -4
- keras_hub/src/models/densenet/densenet_image_classifier.py +1 -129
- keras_hub/src/models/densenet/densenet_image_converter.py +2 -4
- keras_hub/src/models/densenet/densenet_presets.py +9 -15
- keras_hub/src/models/distil_bert/distil_bert_masked_lm.py +1 -1
- keras_hub/src/models/distil_bert/distil_bert_masked_lm_preprocessor.py +2 -2
- keras_hub/src/models/distil_bert/distil_bert_presets.py +5 -10
- keras_hub/src/models/distil_bert/distil_bert_text_classifier.py +5 -5
- keras_hub/src/models/distil_bert/distil_bert_tokenizer.py +3 -3
- keras_hub/src/models/efficientnet/__init__.py +9 -0
- keras_hub/src/models/efficientnet/cba.py +141 -0
- keras_hub/src/models/efficientnet/efficientnet_backbone.py +160 -61
- keras_hub/src/models/efficientnet/efficientnet_image_classifier.py +14 -0
- keras_hub/src/models/efficientnet/efficientnet_image_classifier_preprocessor.py +16 -0
- keras_hub/src/models/efficientnet/efficientnet_image_converter.py +10 -0
- keras_hub/src/models/efficientnet/efficientnet_presets.py +193 -0
- keras_hub/src/models/efficientnet/fusedmbconv.py +84 -41
- keras_hub/src/models/efficientnet/mbconv.py +53 -22
- keras_hub/src/models/electra/electra_backbone.py +2 -2
- keras_hub/src/models/electra/electra_presets.py +6 -18
- keras_hub/src/models/f_net/f_net_presets.py +2 -6
- keras_hub/src/models/f_net/f_net_text_classifier.py +3 -3
- keras_hub/src/models/f_net/f_net_text_classifier_preprocessor.py +3 -3
- keras_hub/src/models/falcon/falcon_backbone.py +5 -3
- keras_hub/src/models/falcon/falcon_causal_lm.py +18 -8
- keras_hub/src/models/falcon/falcon_presets.py +1 -3
- keras_hub/src/models/falcon/falcon_tokenizer.py +7 -2
- keras_hub/src/models/feature_pyramid_backbone.py +1 -1
- keras_hub/src/models/flux/__init__.py +5 -0
- keras_hub/src/models/flux/flux_layers.py +496 -0
- keras_hub/src/models/flux/flux_maths.py +225 -0
- keras_hub/src/models/flux/flux_model.py +236 -0
- keras_hub/src/models/flux/flux_presets.py +3 -0
- keras_hub/src/models/flux/flux_text_to_image.py +146 -0
- keras_hub/src/models/flux/flux_text_to_image_preprocessor.py +73 -0
- keras_hub/src/models/gemma/gemma_backbone.py +35 -20
- keras_hub/src/models/gemma/gemma_causal_lm.py +2 -2
- keras_hub/src/models/gemma/gemma_decoder_block.py +3 -1
- keras_hub/src/models/gemma/gemma_presets.py +29 -63
- keras_hub/src/models/gpt2/gpt2_causal_lm.py +2 -2
- keras_hub/src/models/gpt2/gpt2_presets.py +5 -14
- keras_hub/src/models/gpt_neo_x/gpt_neo_x_attention.py +2 -1
- keras_hub/src/models/gpt_neo_x/gpt_neo_x_causal_lm.py +3 -3
- keras_hub/src/models/gpt_neo_x/gpt_neo_x_decoder.py +2 -1
- keras_hub/src/models/image_classifier.py +147 -2
- keras_hub/src/models/image_classifier_preprocessor.py +6 -3
- keras_hub/src/models/image_object_detector.py +87 -0
- keras_hub/src/models/image_object_detector_preprocessor.py +57 -0
- keras_hub/src/models/image_segmenter.py +0 -5
- keras_hub/src/models/image_segmenter_preprocessor.py +29 -4
- keras_hub/src/models/image_to_image.py +417 -0
- keras_hub/src/models/inpaint.py +520 -0
- keras_hub/src/models/llama/llama_backbone.py +138 -12
- keras_hub/src/models/llama/llama_causal_lm.py +3 -1
- keras_hub/src/models/llama/llama_presets.py +10 -20
- keras_hub/src/models/llama3/llama3_backbone.py +12 -11
- keras_hub/src/models/llama3/llama3_causal_lm.py +1 -1
- keras_hub/src/models/llama3/llama3_presets.py +4 -12
- keras_hub/src/models/llama3/llama3_tokenizer.py +25 -2
- keras_hub/src/models/mistral/mistral_backbone.py +16 -15
- keras_hub/src/models/mistral/mistral_causal_lm.py +6 -4
- keras_hub/src/models/mistral/mistral_presets.py +3 -9
- keras_hub/src/models/mistral/mistral_transformer_decoder.py +2 -1
- keras_hub/src/models/mit/__init__.py +6 -0
- keras_hub/src/models/{mix_transformer/mix_transformer_backbone.py → mit/mit_backbone.py} +47 -36
- keras_hub/src/models/mit/mit_image_classifier.py +12 -0
- keras_hub/src/models/mit/mit_image_classifier_preprocessor.py +12 -0
- keras_hub/src/models/mit/mit_image_converter.py +8 -0
- keras_hub/src/models/{mix_transformer/mix_transformer_layers.py → mit/mit_layers.py} +20 -13
- keras_hub/src/models/mit/mit_presets.py +139 -0
- keras_hub/src/models/mobilenet/mobilenet_backbone.py +8 -8
- keras_hub/src/models/mobilenet/mobilenet_image_classifier.py +0 -92
- keras_hub/src/models/opt/opt_causal_lm.py +2 -2
- keras_hub/src/models/opt/opt_presets.py +4 -12
- keras_hub/src/models/pali_gemma/pali_gemma_backbone.py +63 -17
- keras_hub/src/models/pali_gemma/pali_gemma_causal_lm.py +3 -1
- keras_hub/src/models/pali_gemma/pali_gemma_decoder_block.py +21 -23
- keras_hub/src/models/pali_gemma/pali_gemma_image_converter.py +2 -4
- keras_hub/src/models/pali_gemma/pali_gemma_presets.py +173 -17
- keras_hub/src/models/pali_gemma/pali_gemma_vit.py +14 -26
- keras_hub/src/models/phi3/phi3_causal_lm.py +3 -1
- keras_hub/src/models/phi3/phi3_decoder.py +0 -1
- keras_hub/src/models/phi3/phi3_presets.py +2 -6
- keras_hub/src/models/phi3/phi3_rotary_embedding.py +1 -1
- keras_hub/src/models/preprocessor.py +25 -11
- keras_hub/src/models/resnet/resnet_backbone.py +3 -14
- keras_hub/src/models/resnet/resnet_image_classifier.py +0 -137
- keras_hub/src/models/resnet/resnet_image_converter.py +2 -4
- keras_hub/src/models/resnet/resnet_presets.py +127 -18
- keras_hub/src/models/retinanet/__init__.py +5 -0
- keras_hub/src/models/retinanet/anchor_generator.py +52 -53
- keras_hub/src/models/retinanet/feature_pyramid.py +103 -39
- keras_hub/src/models/retinanet/non_max_supression.py +1 -0
- keras_hub/src/models/retinanet/prediction_head.py +192 -0
- keras_hub/src/models/retinanet/retinanet_backbone.py +146 -0
- keras_hub/src/models/retinanet/retinanet_image_converter.py +53 -0
- keras_hub/src/models/retinanet/retinanet_label_encoder.py +49 -51
- keras_hub/src/models/retinanet/retinanet_object_detector.py +381 -0
- keras_hub/src/models/retinanet/retinanet_object_detector_preprocessor.py +14 -0
- keras_hub/src/models/retinanet/retinanet_presets.py +16 -0
- keras_hub/src/models/roberta/roberta_backbone.py +2 -2
- keras_hub/src/models/roberta/roberta_presets.py +6 -8
- keras_hub/src/models/roberta/roberta_text_classifier.py +3 -3
- keras_hub/src/models/sam/__init__.py +5 -0
- keras_hub/src/models/sam/sam_backbone.py +2 -3
- keras_hub/src/models/sam/sam_image_converter.py +2 -4
- keras_hub/src/models/sam/sam_image_segmenter.py +16 -16
- keras_hub/src/models/sam/sam_image_segmenter_preprocessor.py +11 -1
- keras_hub/src/models/sam/sam_layers.py +5 -3
- keras_hub/src/models/sam/sam_presets.py +3 -9
- keras_hub/src/models/sam/sam_prompt_encoder.py +4 -2
- keras_hub/src/models/sam/sam_transformer.py +5 -4
- keras_hub/src/models/segformer/__init__.py +8 -0
- keras_hub/src/models/segformer/segformer_backbone.py +167 -0
- keras_hub/src/models/segformer/segformer_image_converter.py +8 -0
- keras_hub/src/models/segformer/segformer_image_segmenter.py +184 -0
- keras_hub/src/models/segformer/segformer_image_segmenter_preprocessor.py +31 -0
- keras_hub/src/models/segformer/segformer_presets.py +136 -0
- keras_hub/src/models/seq_2_seq_lm_preprocessor.py +1 -1
- keras_hub/src/models/stable_diffusion_3/flow_match_euler_discrete_scheduler.py +8 -1
- keras_hub/src/models/stable_diffusion_3/mmdit.py +577 -190
- keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_backbone.py +189 -163
- keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_image_to_image.py +178 -0
- keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_inpaint.py +193 -0
- keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_presets.py +43 -7
- keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_text_to_image.py +25 -14
- keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_text_to_image_preprocessor.py +1 -1
- keras_hub/src/models/t5/t5_backbone.py +5 -4
- keras_hub/src/models/t5/t5_presets.py +47 -19
- keras_hub/src/models/task.py +47 -39
- keras_hub/src/models/text_classifier.py +2 -2
- keras_hub/src/models/text_to_image.py +106 -41
- keras_hub/src/models/vae/__init__.py +1 -0
- keras_hub/src/models/vae/vae_backbone.py +184 -0
- keras_hub/src/models/vae/vae_layers.py +739 -0
- keras_hub/src/models/vgg/__init__.py +5 -0
- keras_hub/src/models/vgg/vgg_backbone.py +4 -24
- keras_hub/src/models/vgg/vgg_image_classifier.py +139 -33
- keras_hub/src/models/vgg/vgg_image_classifier_preprocessor.py +12 -0
- keras_hub/src/models/vgg/vgg_image_converter.py +8 -0
- keras_hub/src/models/vgg/vgg_presets.py +48 -0
- keras_hub/src/models/vit/__init__.py +5 -0
- keras_hub/src/models/vit/vit_backbone.py +152 -0
- keras_hub/src/models/vit/vit_image_classifier.py +187 -0
- keras_hub/src/models/vit/vit_image_classifier_preprocessor.py +12 -0
- keras_hub/src/models/vit/vit_image_converter.py +73 -0
- keras_hub/src/models/vit/vit_layers.py +391 -0
- keras_hub/src/models/vit/vit_presets.py +126 -0
- keras_hub/src/models/vit_det/vit_det_backbone.py +6 -4
- keras_hub/src/models/vit_det/vit_layers.py +3 -3
- keras_hub/src/models/whisper/whisper_audio_converter.py +2 -4
- keras_hub/src/models/whisper/whisper_backbone.py +6 -5
- keras_hub/src/models/whisper/whisper_decoder.py +3 -5
- keras_hub/src/models/whisper/whisper_presets.py +10 -30
- keras_hub/src/models/xlm_roberta/xlm_roberta_masked_lm.py +1 -1
- keras_hub/src/models/xlm_roberta/xlm_roberta_masked_lm_preprocessor.py +2 -2
- keras_hub/src/models/xlm_roberta/xlm_roberta_presets.py +2 -6
- keras_hub/src/models/xlm_roberta/xlm_roberta_text_classifier.py +4 -4
- keras_hub/src/models/xlm_roberta/xlm_roberta_tokenizer.py +2 -1
- keras_hub/src/models/xlnet/relative_attention.py +20 -19
- keras_hub/src/models/xlnet/xlnet_backbone.py +2 -2
- keras_hub/src/models/xlnet/xlnet_content_and_query_embedding.py +3 -5
- keras_hub/src/models/xlnet/xlnet_encoder.py +7 -9
- keras_hub/src/samplers/contrastive_sampler.py +2 -3
- keras_hub/src/samplers/sampler.py +2 -1
- keras_hub/src/tests/test_case.py +41 -6
- keras_hub/src/tokenizers/byte_pair_tokenizer.py +7 -3
- keras_hub/src/tokenizers/byte_tokenizer.py +3 -10
- keras_hub/src/tokenizers/sentence_piece_tokenizer.py +2 -9
- keras_hub/src/tokenizers/sentence_piece_tokenizer_trainer.py +9 -11
- keras_hub/src/tokenizers/tokenizer.py +10 -13
- keras_hub/src/tokenizers/unicode_codepoint_tokenizer.py +9 -7
- keras_hub/src/tokenizers/word_piece_tokenizer_trainer.py +10 -3
- keras_hub/src/utils/keras_utils.py +2 -13
- keras_hub/src/utils/pipeline_model.py +3 -3
- keras_hub/src/utils/preset_utils.py +196 -144
- keras_hub/src/utils/tensor_utils.py +4 -4
- keras_hub/src/utils/timm/convert_densenet.py +6 -4
- keras_hub/src/utils/timm/convert_efficientnet.py +447 -0
- keras_hub/src/utils/timm/convert_resnet.py +1 -1
- keras_hub/src/utils/timm/convert_vgg.py +85 -0
- keras_hub/src/utils/timm/preset_loader.py +14 -9
- keras_hub/src/utils/transformers/convert_llama3.py +21 -5
- keras_hub/src/utils/transformers/convert_vit.py +150 -0
- keras_hub/src/utils/transformers/preset_loader.py +23 -0
- keras_hub/src/utils/transformers/safetensor_utils.py +4 -3
- keras_hub/src/version_utils.py +1 -1
- {keras_hub_nightly-0.16.1.dev202410020340.dist-info → keras_hub_nightly-0.19.0.dev202501260345.dist-info}/METADATA +86 -68
- keras_hub_nightly-0.19.0.dev202501260345.dist-info/RECORD +423 -0
- {keras_hub_nightly-0.16.1.dev202410020340.dist-info → keras_hub_nightly-0.19.0.dev202501260345.dist-info}/WHEEL +1 -1
- keras_hub/src/layers/preprocessing/resizing_image_converter.py +0 -138
- keras_hub/src/models/mix_transformer/__init__.py +0 -0
- keras_hub/src/models/mix_transformer/mix_transformer_classifier.py +0 -119
- keras_hub/src/models/stable_diffusion_3/vae_image_decoder.py +0 -320
- keras_hub_nightly-0.16.1.dev202410020340.dist-info/RECORD +0 -357
- {keras_hub_nightly-0.16.1.dev202410020340.dist-info → keras_hub_nightly-0.19.0.dev202501260345.dist-info}/top_level.txt +0 -0
@@ -5,14 +5,12 @@ backbone_presets = {
|
|
5
5
|
"pali_gemma_3b_mix_224": {
|
6
6
|
"metadata": {
|
7
7
|
"description": (
|
8
|
-
"image size 224, mix fine tuned, text sequence
|
8
|
+
"image size 224, mix fine tuned, text sequence length is 256"
|
9
9
|
),
|
10
10
|
"params": 2923335408,
|
11
|
-
"official_name": "PaliGemma",
|
12
11
|
"path": "pali_gemma",
|
13
|
-
"model_card": "https://www.kaggle.com/models/google/paligemma",
|
14
12
|
},
|
15
|
-
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_mix_224/
|
13
|
+
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_mix_224/4",
|
16
14
|
},
|
17
15
|
"pali_gemma_3b_mix_448": {
|
18
16
|
"metadata": {
|
@@ -20,11 +18,9 @@ backbone_presets = {
|
|
20
18
|
"image size 448, mix fine tuned, text sequence length is 512"
|
21
19
|
),
|
22
20
|
"params": 2924220144,
|
23
|
-
"official_name": "PaliGemma",
|
24
21
|
"path": "pali_gemma",
|
25
|
-
"model_card": "https://www.kaggle.com/models/google/paligemma",
|
26
22
|
},
|
27
|
-
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_mix_448/
|
23
|
+
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_mix_448/4",
|
28
24
|
},
|
29
25
|
"pali_gemma_3b_224": {
|
30
26
|
"metadata": {
|
@@ -32,11 +28,9 @@ backbone_presets = {
|
|
32
28
|
"image size 224, pre trained, text sequence length is 128"
|
33
29
|
),
|
34
30
|
"params": 2923335408,
|
35
|
-
"official_name": "PaliGemma",
|
36
31
|
"path": "pali_gemma",
|
37
|
-
"model_card": "https://www.kaggle.com/models/google/paligemma",
|
38
32
|
},
|
39
|
-
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_224/
|
33
|
+
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_224/4",
|
40
34
|
},
|
41
35
|
"pali_gemma_3b_448": {
|
42
36
|
"metadata": {
|
@@ -44,22 +38,184 @@ backbone_presets = {
|
|
44
38
|
"image size 448, pre trained, text sequence length is 512"
|
45
39
|
),
|
46
40
|
"params": 2924220144,
|
47
|
-
"official_name": "PaliGemma",
|
48
41
|
"path": "pali_gemma",
|
49
|
-
"model_card": "https://www.kaggle.com/models/google/paligemma",
|
50
42
|
},
|
51
|
-
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_448/
|
43
|
+
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_448/4",
|
52
44
|
},
|
53
45
|
"pali_gemma_3b_896": {
|
54
46
|
"metadata": {
|
55
47
|
"description": (
|
56
|
-
"image size 896, pre trained, text sequence length
|
48
|
+
"image size 896, pre trained, text sequence length is 512"
|
57
49
|
),
|
58
50
|
"params": 2927759088,
|
59
|
-
"official_name": "PaliGemma",
|
60
51
|
"path": "pali_gemma",
|
61
|
-
"model_card": "https://www.kaggle.com/models/google/paligemma",
|
62
52
|
},
|
63
|
-
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_896/
|
53
|
+
"kaggle_handle": "kaggle://keras/paligemma/keras/pali_gemma_3b_896/4",
|
54
|
+
},
|
55
|
+
# PaliGemma2
|
56
|
+
"pali_gemma_2_ft_docci_3b_448": {
|
57
|
+
"metadata": {
|
58
|
+
"description": (
|
59
|
+
"3 billion parameter, image size 448, 27-layer for "
|
60
|
+
"SigLIP-So400m vision encoder and 26-layer Gemma2 2B lanuage "
|
61
|
+
"model. This model has been fine-tuned on the DOCCI dataset "
|
62
|
+
"for improved descriptions with fine-grained details."
|
63
|
+
),
|
64
|
+
"params": 3032979696,
|
65
|
+
"official_name": "PaliGemma2",
|
66
|
+
"path": "pali_gemma2",
|
67
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
68
|
+
},
|
69
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma_2_ft_docci_3b_448/2",
|
70
|
+
},
|
71
|
+
"pali_gemma2_ft_docci_10b_448": {
|
72
|
+
"metadata": {
|
73
|
+
"description": (
|
74
|
+
"10 billion parameter, 27-layer for SigLIP-So400m vision "
|
75
|
+
"encoder and 42-layer Gemma2 9B lanuage model. This model has "
|
76
|
+
"been fine-tuned on the DOCCI dataset for improved "
|
77
|
+
"descriptions with fine-grained details."
|
78
|
+
),
|
79
|
+
"params": 9663294192,
|
80
|
+
"official_name": "PaliGemma2",
|
81
|
+
"path": "pali_gemma2",
|
82
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
83
|
+
},
|
84
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_ft_docci_10b_448/2",
|
85
|
+
},
|
86
|
+
"pali_gemma2_pt_3b_224": {
|
87
|
+
"metadata": {
|
88
|
+
"description": (
|
89
|
+
"3 billion parameter, image size 224, 27-layer for "
|
90
|
+
"SigLIP-So400m vision encoder and 26-layer Gemma2 2B lanuage "
|
91
|
+
"model. This model has been pre-trained on a mixture of "
|
92
|
+
"datasets."
|
93
|
+
),
|
94
|
+
"params": 3032094960,
|
95
|
+
"official_name": "PaliGemma2",
|
96
|
+
"path": "pali_gemma2",
|
97
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
98
|
+
},
|
99
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_3b_224/2",
|
100
|
+
},
|
101
|
+
"pali_gemma2_pt_3b_448": {
|
102
|
+
"metadata": {
|
103
|
+
"description": (
|
104
|
+
"3 billion parameter, image size 448, 27-layer for "
|
105
|
+
"SigLIP-So400m vision encoder and 26-layer Gemma2 2B lanuage "
|
106
|
+
"model. This model has been pre-trained on a mixture of "
|
107
|
+
"datasets."
|
108
|
+
),
|
109
|
+
"params": 3032979696,
|
110
|
+
"official_name": "PaliGemma2",
|
111
|
+
"path": "pali_gemma2",
|
112
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
113
|
+
},
|
114
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_3b_448/2",
|
115
|
+
},
|
116
|
+
"pali_gemma2_pt_3b_896": {
|
117
|
+
"metadata": {
|
118
|
+
"description": (
|
119
|
+
"3 billion parameter, image size 896, 27-layer for "
|
120
|
+
"SigLIP-So400m vision encoder and 26-layer Gemma2 2B lanuage "
|
121
|
+
"model. This model has been pre-trained on a mixture of "
|
122
|
+
"datasets."
|
123
|
+
),
|
124
|
+
"params": 3036518640,
|
125
|
+
"official_name": "PaliGemma2",
|
126
|
+
"path": "pali_gemma2",
|
127
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
128
|
+
},
|
129
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_3b_896/2",
|
130
|
+
},
|
131
|
+
"pali_gemma2_pt_10b_224": {
|
132
|
+
"metadata": {
|
133
|
+
"description": (
|
134
|
+
"10 billion parameter, image size 224, 27-layer for "
|
135
|
+
"SigLIP-So400m vision encoder and 42-layer Gemma2 9B lanuage "
|
136
|
+
"model. This model has been pre-trained on a mixture of "
|
137
|
+
"datasets."
|
138
|
+
),
|
139
|
+
"params": 9662409456,
|
140
|
+
"official_name": "PaliGemma2",
|
141
|
+
"path": "pali_gemma2",
|
142
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
143
|
+
},
|
144
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_10b_224/2",
|
145
|
+
},
|
146
|
+
"pali_gemma2_pt_10b_448": {
|
147
|
+
"metadata": {
|
148
|
+
"description": (
|
149
|
+
"10 billion parameter, image size 448, 27-layer for "
|
150
|
+
"SigLIP-So400m vision encoder and 42-layer Gemma2 9B lanuage "
|
151
|
+
"model. This model has been pre-trained on a mixture of "
|
152
|
+
"datasets."
|
153
|
+
),
|
154
|
+
"params": 9663294192,
|
155
|
+
"official_name": "PaliGemma2",
|
156
|
+
"path": "pali_gemma2",
|
157
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
158
|
+
},
|
159
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_10b_448/2",
|
160
|
+
},
|
161
|
+
"pali_gemma2_pt_10b_896": {
|
162
|
+
"metadata": {
|
163
|
+
"description": (
|
164
|
+
"10 billion parameter, image size 896, 27-layer for "
|
165
|
+
"SigLIP-So400m vision encoder and 42-layer Gemma2 9B lanuage "
|
166
|
+
"model. This model has been pre-trained on a mixture of "
|
167
|
+
"datasets."
|
168
|
+
),
|
169
|
+
"params": 9666833136,
|
170
|
+
"official_name": "PaliGemma2",
|
171
|
+
"path": "pali_gemma2",
|
172
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
173
|
+
},
|
174
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_10b_896/2",
|
175
|
+
},
|
176
|
+
"pali_gemma2_pt_28b_224": {
|
177
|
+
"metadata": {
|
178
|
+
"description": (
|
179
|
+
"28 billion parameter, image size 224, 27-layer for "
|
180
|
+
"SigLIP-So400m vision encoder and 46-layer Gemma2 27B lanuage "
|
181
|
+
"model. This model has been pre-trained on a mixture of "
|
182
|
+
"datasets."
|
183
|
+
),
|
184
|
+
"params": 9662409456,
|
185
|
+
"official_name": "PaliGemma2",
|
186
|
+
"path": "pali_gemma2",
|
187
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
188
|
+
},
|
189
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_28b_224/3",
|
190
|
+
},
|
191
|
+
"pali_gemma2_pt_28b_448": {
|
192
|
+
"metadata": {
|
193
|
+
"description": (
|
194
|
+
"28 billion parameter, image size 448, 27-layer for "
|
195
|
+
"SigLIP-So400m vision encoder and 46-layer Gemma2 27B lanuage "
|
196
|
+
"model. This model has been pre-trained on a mixture of "
|
197
|
+
"datasets."
|
198
|
+
),
|
199
|
+
"params": 9663294192,
|
200
|
+
"official_name": "PaliGemma2",
|
201
|
+
"path": "pali_gemma2",
|
202
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
203
|
+
},
|
204
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_28b_448/2",
|
205
|
+
},
|
206
|
+
"pali_gemma2_pt_28b_896": {
|
207
|
+
"metadata": {
|
208
|
+
"description": (
|
209
|
+
"28 billion parameter, image size 896, 27-layer for "
|
210
|
+
"SigLIP-So400m vision encoder and 46-layer Gemma2 27B lanuage "
|
211
|
+
"model. This model has been pre-trained on a mixture of "
|
212
|
+
"datasets."
|
213
|
+
),
|
214
|
+
"params": 9666833136,
|
215
|
+
"official_name": "PaliGemma2",
|
216
|
+
"path": "pali_gemma2",
|
217
|
+
"model_card": "https://www.kaggle.com/models/google/paligemma-2",
|
218
|
+
},
|
219
|
+
"kaggle_handle": "kaggle://keras/paligemma2/keras/pali_gemma2_pt_28b_896/2",
|
64
220
|
},
|
65
221
|
}
|
@@ -12,7 +12,7 @@ class PaliGemmaVitEmbeddings(keras.layers.Layer):
|
|
12
12
|
dtype=None,
|
13
13
|
**kwargs,
|
14
14
|
):
|
15
|
-
super().__init__(**kwargs)
|
15
|
+
super().__init__(dtype=dtype, **kwargs)
|
16
16
|
self.hidden_dim = hidden_dim
|
17
17
|
self.image_size = image_size
|
18
18
|
self.patch_size = patch_size
|
@@ -61,7 +61,7 @@ class PaliGemmaVitEmbeddings(keras.layers.Layer):
|
|
61
61
|
|
62
62
|
class PaliGemmaVitAttention(keras.layers.Layer):
|
63
63
|
"""
|
64
|
-
Adapted from https://github.com/huggingface/transformers/blob/main/src/transformers/models/clip/modeling_clip.py
|
64
|
+
Adapted from https://github.com/huggingface/transformers/blob/main/src/transformers/models/clip/modeling_clip.py
|
65
65
|
"""
|
66
66
|
|
67
67
|
def __init__(
|
@@ -72,7 +72,7 @@ class PaliGemmaVitAttention(keras.layers.Layer):
|
|
72
72
|
dtype=None,
|
73
73
|
**kwargs,
|
74
74
|
):
|
75
|
-
super().__init__(**kwargs)
|
75
|
+
super().__init__(dtype=dtype, **kwargs)
|
76
76
|
|
77
77
|
self.hidden_dim = hidden_dim
|
78
78
|
self.num_heads = num_heads
|
@@ -120,7 +120,7 @@ class PaliGemmaVitAttention(keras.layers.Layer):
|
|
120
120
|
|
121
121
|
def _transpose_for_scores(self, tensor, batch_size):
|
122
122
|
"""
|
123
|
-
Adapted from https://github.com/huggingface/transformers/blob/8e164c5400b7b413c7b8fb32e35132001effc970/src/transformers/models/bert/modeling_tf_bert.py#L252
|
123
|
+
Adapted from https://github.com/huggingface/transformers/blob/8e164c5400b7b413c7b8fb32e35132001effc970/src/transformers/models/bert/modeling_tf_bert.py#L252
|
124
124
|
"""
|
125
125
|
# [batch_size, seq_len, all_head_dim] ->
|
126
126
|
# [batch_size, seq_len, num_heads, head_dim]
|
@@ -282,7 +282,7 @@ class PaliGemmaVitEncoder(keras.layers.Layer):
|
|
282
282
|
dtype=None,
|
283
283
|
**kwargs,
|
284
284
|
):
|
285
|
-
super().__init__(**kwargs)
|
285
|
+
super().__init__(dtype=dtype, **kwargs)
|
286
286
|
self.hidden_dim = hidden_dim
|
287
287
|
self.num_layers = num_layers
|
288
288
|
self.num_heads = num_heads
|
@@ -311,25 +311,26 @@ class PaliGemmaVitEncoder(keras.layers.Layer):
|
|
311
311
|
for i in range(self.num_layers)
|
312
312
|
]
|
313
313
|
|
314
|
-
def build(self,
|
315
|
-
self.vision_embeddings.build(
|
314
|
+
def build(self, inputs_shape):
|
315
|
+
self.vision_embeddings.build(inputs_shape)
|
316
316
|
for block in self.resblocks:
|
317
317
|
block.build([None, None, self.hidden_dim])
|
318
318
|
self.encoder_layer_norm.build([None, None, self.hidden_dim])
|
319
319
|
self.built = True
|
320
320
|
|
321
|
-
def call(
|
322
|
-
self
|
323
|
-
x,
|
324
|
-
mask=None,
|
325
|
-
):
|
326
|
-
x = self.vision_embeddings(x)
|
321
|
+
def call(self, inputs, mask=None):
|
322
|
+
x = self.vision_embeddings(inputs)
|
327
323
|
for block in self.resblocks:
|
328
324
|
x = block(x, mask=mask)
|
329
325
|
x = self.encoder_layer_norm(x)
|
330
326
|
return x
|
331
327
|
|
332
328
|
def compute_output_shape(self, inputs_shape):
|
329
|
+
if inputs_shape is None:
|
330
|
+
# Fix the compatibility issue with Keras 3.1 where
|
331
|
+
# `compute_output_spec` fails to propagate `inputs_shape`
|
332
|
+
# correctly, causing it to be `None`.
|
333
|
+
inputs_shape = [None, None, None]
|
333
334
|
return [inputs_shape[0], inputs_shape[1], self.hidden_dim]
|
334
335
|
|
335
336
|
def get_config(self):
|
@@ -410,8 +411,6 @@ class PaliGemmaVit(keras.Model):
|
|
410
411
|
Args:
|
411
412
|
image_size: int. The height/width of the image. Both height and width is
|
412
413
|
expected to be the same.
|
413
|
-
include_rescaling: bool. If true, the image input will be rescaled from
|
414
|
-
the range `[0, 255]`, to the range `[0, 1]`.
|
415
414
|
patch_size: int. The size of each square patch in the input image.
|
416
415
|
num_heads: int. The number of attention heads for the vision(image)
|
417
416
|
transformer encoder.
|
@@ -452,7 +451,6 @@ class PaliGemmaVit(keras.Model):
|
|
452
451
|
num_layers,
|
453
452
|
intermediate_dim,
|
454
453
|
num_classes,
|
455
|
-
include_rescaling=True,
|
456
454
|
pooling=None,
|
457
455
|
classifier_activation=None,
|
458
456
|
dtype=None,
|
@@ -463,14 +461,6 @@ class PaliGemmaVit(keras.Model):
|
|
463
461
|
shape=(image_size, image_size, 3), name="images"
|
464
462
|
)
|
465
463
|
x = image_input # Intermediate result.
|
466
|
-
# TODO we have moved this rescaling to preprocessing layers for most
|
467
|
-
# models. We should consider removing it here, though it would break
|
468
|
-
# compatibility.
|
469
|
-
if include_rescaling:
|
470
|
-
rescaling = keras.layers.Rescaling(
|
471
|
-
scale=1.0 / 127.5, offset=-1.0, name="rescaling"
|
472
|
-
)
|
473
|
-
x = rescaling(image_input)
|
474
464
|
x = PaliGemmaVitEncoder(
|
475
465
|
hidden_dim=hidden_dim,
|
476
466
|
num_layers=num_layers,
|
@@ -520,7 +510,6 @@ class PaliGemmaVit(keras.Model):
|
|
520
510
|
self.pooling = pooling
|
521
511
|
self.num_classes = num_classes
|
522
512
|
self.image_size = image_size
|
523
|
-
self.include_rescaling = include_rescaling
|
524
513
|
self.patch_size = patch_size
|
525
514
|
self.classifier_activation = keras.activations.get(
|
526
515
|
classifier_activation
|
@@ -549,7 +538,6 @@ class PaliGemmaVit(keras.Model):
|
|
549
538
|
self.classifier_activation
|
550
539
|
),
|
551
540
|
"image_size": self.image_size,
|
552
|
-
"include_rescaling": self.include_rescaling,
|
553
541
|
"patch_size": self.patch_size,
|
554
542
|
}
|
555
543
|
)
|
@@ -41,7 +41,9 @@ class Phi3CausalLM(CausalLM):
|
|
41
41
|
self.preprocessor = preprocessor
|
42
42
|
|
43
43
|
# === Functional Model ===
|
44
|
-
|
44
|
+
# This must be "backbone.input" i.e. the full input structure,
|
45
|
+
# rather than "backbone.inputs" which is the flattened list of inputs.
|
46
|
+
inputs = backbone.input
|
45
47
|
hidden_states = backbone(inputs)
|
46
48
|
outputs = backbone.token_embedding(hidden_states, reverse=True)
|
47
49
|
super().__init__(
|
@@ -53,7 +53,6 @@ class Phi3Decoder(keras.layers.Layer):
|
|
53
53
|
self.kernel_initializer = keras.initializers.get(kernel_initializer)
|
54
54
|
|
55
55
|
def build(self, decoder_sequence_shape):
|
56
|
-
|
57
56
|
# Pre-attention layernorm.
|
58
57
|
self.pre_attention_layernorm = Phi3LayerNorm(
|
59
58
|
epsilon=self.layer_norm_epsilon,
|
@@ -12,11 +12,9 @@ backbone_presets = {
|
|
12
12
|
"reasoning-dense properties."
|
13
13
|
),
|
14
14
|
"params": 3821079552,
|
15
|
-
"official_name": "Phi-3",
|
16
15
|
"path": "phi3",
|
17
|
-
"model_card": "https://huggingface.co/microsoft/Phi-3-mini-4k-instruct",
|
18
16
|
},
|
19
|
-
"kaggle_handle": "kaggle://keras/phi3/keras/phi3_mini_4k_instruct_en",
|
17
|
+
"kaggle_handle": "kaggle://keras/phi3/keras/phi3_mini_4k_instruct_en/2",
|
20
18
|
},
|
21
19
|
"phi3_mini_128k_instruct_en": {
|
22
20
|
"metadata": {
|
@@ -28,10 +26,8 @@ backbone_presets = {
|
|
28
26
|
"reasoning-dense properties."
|
29
27
|
),
|
30
28
|
"params": 3821079552,
|
31
|
-
"official_name": "Phi-3",
|
32
29
|
"path": "phi3",
|
33
|
-
"model_card": "https://huggingface.co/microsoft/Phi-3-mini-128k-instruct",
|
34
30
|
},
|
35
|
-
"kaggle_handle": "kaggle://keras/phi3/keras/phi3_mini_128k_instruct_en",
|
31
|
+
"kaggle_handle": "kaggle://keras/phi3/keras/phi3_mini_128k_instruct_en/2",
|
36
32
|
},
|
37
33
|
}
|
@@ -43,7 +43,7 @@ class Phi3SuScaledRotaryEmbedding(RotaryEmbedding):
|
|
43
43
|
max_sequence_length=4096,
|
44
44
|
pretraining_sequence_length=4096,
|
45
45
|
max_wavelength=10000,
|
46
|
-
**kwargs
|
46
|
+
**kwargs,
|
47
47
|
):
|
48
48
|
super().__init__(max_wavelength=max_wavelength, **kwargs)
|
49
49
|
self.max_sequence_length = max_sequence_length
|
@@ -8,7 +8,7 @@ from keras_hub.src.utils.preset_utils import PREPROCESSOR_CONFIG_FILE
|
|
8
8
|
from keras_hub.src.utils.preset_utils import builtin_presets
|
9
9
|
from keras_hub.src.utils.preset_utils import find_subclass
|
10
10
|
from keras_hub.src.utils.preset_utils import get_preset_loader
|
11
|
-
from keras_hub.src.utils.preset_utils import
|
11
|
+
from keras_hub.src.utils.preset_utils import get_preset_saver
|
12
12
|
from keras_hub.src.utils.python_utils import classproperty
|
13
13
|
|
14
14
|
|
@@ -32,7 +32,7 @@ class Preprocessor(PreprocessingLayer):
|
|
32
32
|
image_converter_cls = None
|
33
33
|
|
34
34
|
def __init__(self, *args, **kwargs):
|
35
|
-
self.
|
35
|
+
self.config_file = kwargs.pop("config_file", PREPROCESSOR_CONFIG_FILE)
|
36
36
|
super().__init__(*args, **kwargs)
|
37
37
|
self._tokenizer = None
|
38
38
|
self._image_converter = None
|
@@ -71,6 +71,22 @@ class Preprocessor(PreprocessingLayer):
|
|
71
71
|
def image_converter(self, value):
|
72
72
|
self._image_converter = value
|
73
73
|
|
74
|
+
@property
|
75
|
+
def image_size(self):
|
76
|
+
"""Shortcut to get/set the image size of the image converter."""
|
77
|
+
if self.image_converter is None:
|
78
|
+
return None
|
79
|
+
return self.image_converter.image_size
|
80
|
+
|
81
|
+
@image_size.setter
|
82
|
+
def image_size(self, value):
|
83
|
+
if self.image_converter is None:
|
84
|
+
raise ValueError(
|
85
|
+
"Cannot set `image_size` on preprocessor if `image_converter` "
|
86
|
+
" is `None`."
|
87
|
+
)
|
88
|
+
self.image_converter.image_size = value
|
89
|
+
|
74
90
|
def get_config(self):
|
75
91
|
config = super().get_config()
|
76
92
|
if self.tokenizer:
|
@@ -85,7 +101,7 @@ class Preprocessor(PreprocessingLayer):
|
|
85
101
|
)
|
86
102
|
config.update(
|
87
103
|
{
|
88
|
-
"
|
104
|
+
"config_file": self.config_file,
|
89
105
|
}
|
90
106
|
)
|
91
107
|
return config
|
@@ -117,7 +133,7 @@ class Preprocessor(PreprocessingLayer):
|
|
117
133
|
def from_preset(
|
118
134
|
cls,
|
119
135
|
preset,
|
120
|
-
|
136
|
+
config_file=PREPROCESSOR_CONFIG_FILE,
|
121
137
|
**kwargs,
|
122
138
|
):
|
123
139
|
"""Instantiate a `keras_hub.models.Preprocessor` from a model preset.
|
@@ -145,12 +161,12 @@ class Preprocessor(PreprocessingLayer):
|
|
145
161
|
Examples:
|
146
162
|
```python
|
147
163
|
# Load a preprocessor for Gemma generation.
|
148
|
-
preprocessor = keras_hub.models.
|
164
|
+
preprocessor = keras_hub.models.CausalLMPreprocessor.from_preset(
|
149
165
|
"gemma_2b_en",
|
150
166
|
)
|
151
167
|
|
152
168
|
# Load a preprocessor for Bert classification.
|
153
|
-
preprocessor = keras_hub.models.
|
169
|
+
preprocessor = keras_hub.models.TextClassifierPreprocessor.from_preset(
|
154
170
|
"bert_base_en",
|
155
171
|
)
|
156
172
|
```
|
@@ -167,7 +183,7 @@ class Preprocessor(PreprocessingLayer):
|
|
167
183
|
# Detect the correct subclass if we need to.
|
168
184
|
if cls.backbone_cls != backbone_cls:
|
169
185
|
cls = find_subclass(preset, cls, backbone_cls)
|
170
|
-
return loader.load_preprocessor(cls,
|
186
|
+
return loader.load_preprocessor(cls, config_file, **kwargs)
|
171
187
|
|
172
188
|
@classmethod
|
173
189
|
def _add_missing_kwargs(cls, loader, kwargs):
|
@@ -209,7 +225,5 @@ class Preprocessor(PreprocessingLayer):
|
|
209
225
|
Args:
|
210
226
|
preset_dir: The path to the local model preset directory.
|
211
227
|
"""
|
212
|
-
|
213
|
-
|
214
|
-
if hasattr(layer, "save_to_preset"):
|
215
|
-
layer.save_to_preset(preset_dir)
|
228
|
+
saver = get_preset_saver(preset_dir)
|
229
|
+
saver.save_preprocessor(self)
|
@@ -51,16 +51,6 @@ class ResNetBackbone(FeaturePyramidBackbone):
|
|
51
51
|
`True` for ResNetV2, `False` for ResNet.
|
52
52
|
image_shape: tuple. The input shape without the batch size.
|
53
53
|
Defaults to `(None, None, 3)`.
|
54
|
-
pooling: `None` or str. Pooling mode for feature extraction. Defaults
|
55
|
-
to `"avg"`.
|
56
|
-
- `None` means that the output of the model will be the 4D tensor
|
57
|
-
from the last convolutional block.
|
58
|
-
- `avg` means that global average pooling will be applied to the
|
59
|
-
output of the last convolutional block, resulting in a 2D
|
60
|
-
tensor.
|
61
|
-
- `max` means that global max pooling will be applied to the
|
62
|
-
output of the last convolutional block, resulting in a 2D
|
63
|
-
tensor.
|
64
54
|
data_format: `None` or str. If specified, either `"channels_last"` or
|
65
55
|
`"channels_first"`. The ordering of the dimensions in the
|
66
56
|
inputs. `"channels_last"` corresponds to inputs with shape
|
@@ -75,10 +65,10 @@ class ResNetBackbone(FeaturePyramidBackbone):
|
|
75
65
|
|
76
66
|
Examples:
|
77
67
|
```python
|
78
|
-
input_data = np.random.uniform(0,
|
68
|
+
input_data = np.random.uniform(0, 1, size=(2, 224, 224, 3))
|
79
69
|
|
80
70
|
# Pretrained ResNet backbone.
|
81
|
-
model = keras_hub.models.ResNetBackbone.from_preset("
|
71
|
+
model = keras_hub.models.ResNetBackbone.from_preset("resnet_50_imagenet")
|
82
72
|
model(input_data)
|
83
73
|
|
84
74
|
# Randomly initialized ResNetV2 backbone with a custom config.
|
@@ -90,7 +80,6 @@ class ResNetBackbone(FeaturePyramidBackbone):
|
|
90
80
|
stackwise_num_strides=[1, 2, 2],
|
91
81
|
block_type="basic_block",
|
92
82
|
use_pre_activation=True,
|
93
|
-
pooling="avg",
|
94
83
|
)
|
95
84
|
model(input_data)
|
96
85
|
```
|
@@ -188,7 +177,7 @@ class ResNetBackbone(FeaturePyramidBackbone):
|
|
188
177
|
use_bias=False,
|
189
178
|
padding="same",
|
190
179
|
dtype=dtype,
|
191
|
-
name=f"conv{conv_index+1}_conv",
|
180
|
+
name=f"conv{conv_index + 1}_conv",
|
192
181
|
)(x)
|
193
182
|
|
194
183
|
if not use_pre_activation:
|