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.
Files changed (252) hide show
  1. keras_hub/api/layers/__init__.py +21 -3
  2. keras_hub/api/models/__init__.py +71 -12
  3. keras_hub/api/tokenizers/__init__.py +1 -1
  4. keras_hub/src/bounding_box/__init__.py +2 -0
  5. keras_hub/src/bounding_box/converters.py +102 -12
  6. keras_hub/src/layers/modeling/f_net_encoder.py +1 -1
  7. keras_hub/src/layers/modeling/masked_lm_head.py +2 -1
  8. keras_hub/src/layers/modeling/reversible_embedding.py +3 -16
  9. keras_hub/src/layers/modeling/rms_normalization.py +36 -0
  10. keras_hub/src/layers/modeling/rotary_embedding.py +3 -2
  11. keras_hub/src/layers/modeling/token_and_position_embedding.py +1 -1
  12. keras_hub/src/layers/modeling/transformer_decoder.py +8 -6
  13. keras_hub/src/layers/modeling/transformer_encoder.py +29 -7
  14. keras_hub/src/layers/preprocessing/audio_converter.py +3 -7
  15. keras_hub/src/layers/preprocessing/image_converter.py +170 -34
  16. keras_hub/src/metrics/bleu.py +4 -3
  17. keras_hub/src/models/albert/albert_presets.py +4 -12
  18. keras_hub/src/models/albert/albert_text_classifier.py +7 -7
  19. keras_hub/src/models/backbone.py +3 -14
  20. keras_hub/src/models/bart/bart_backbone.py +4 -4
  21. keras_hub/src/models/bart/bart_presets.py +3 -9
  22. keras_hub/src/models/bart/bart_seq_2_seq_lm.py +9 -8
  23. keras_hub/src/models/basnet/__init__.py +5 -0
  24. keras_hub/src/models/basnet/basnet.py +122 -0
  25. keras_hub/src/models/basnet/basnet_backbone.py +366 -0
  26. keras_hub/src/models/basnet/basnet_image_converter.py +8 -0
  27. keras_hub/src/models/basnet/basnet_preprocessor.py +14 -0
  28. keras_hub/src/models/basnet/basnet_presets.py +17 -0
  29. keras_hub/src/models/bert/bert_presets.py +14 -32
  30. keras_hub/src/models/bert/bert_text_classifier.py +3 -3
  31. keras_hub/src/models/bloom/bloom_presets.py +8 -24
  32. keras_hub/src/models/causal_lm.py +56 -12
  33. keras_hub/src/models/clip/__init__.py +5 -0
  34. keras_hub/src/models/clip/clip_backbone.py +286 -0
  35. keras_hub/src/models/clip/clip_encoder_block.py +19 -4
  36. keras_hub/src/models/clip/clip_image_converter.py +8 -0
  37. keras_hub/src/models/clip/clip_presets.py +93 -0
  38. keras_hub/src/models/clip/clip_text_encoder.py +4 -1
  39. keras_hub/src/models/clip/clip_tokenizer.py +18 -3
  40. keras_hub/src/models/clip/clip_vision_embedding.py +101 -0
  41. keras_hub/src/models/clip/clip_vision_encoder.py +159 -0
  42. keras_hub/src/models/csp_darknet/csp_darknet_backbone.py +2 -1
  43. keras_hub/src/models/csp_darknet/csp_darknet_image_classifier.py +0 -109
  44. keras_hub/src/models/deberta_v3/deberta_v3_backbone.py +1 -1
  45. keras_hub/src/models/deberta_v3/deberta_v3_presets.py +5 -15
  46. keras_hub/src/models/deberta_v3/deberta_v3_text_classifier.py +4 -4
  47. keras_hub/src/models/deberta_v3/disentangled_attention_encoder.py +4 -4
  48. keras_hub/src/models/deberta_v3/disentangled_self_attention.py +3 -2
  49. keras_hub/src/models/deberta_v3/relative_embedding.py +1 -1
  50. keras_hub/src/models/deeplab_v3/__init__.py +7 -0
  51. keras_hub/src/models/deeplab_v3/deeplab_v3_backbone.py +200 -0
  52. keras_hub/src/models/deeplab_v3/deeplab_v3_image_converter.py +10 -0
  53. keras_hub/src/models/deeplab_v3/deeplab_v3_image_segmeter_preprocessor.py +16 -0
  54. keras_hub/src/models/deeplab_v3/deeplab_v3_layers.py +215 -0
  55. keras_hub/src/models/deeplab_v3/deeplab_v3_presets.py +17 -0
  56. keras_hub/src/models/deeplab_v3/deeplab_v3_segmenter.py +111 -0
  57. keras_hub/src/models/densenet/densenet_backbone.py +6 -4
  58. keras_hub/src/models/densenet/densenet_image_classifier.py +1 -129
  59. keras_hub/src/models/densenet/densenet_image_converter.py +2 -4
  60. keras_hub/src/models/densenet/densenet_presets.py +9 -15
  61. keras_hub/src/models/distil_bert/distil_bert_masked_lm.py +1 -1
  62. keras_hub/src/models/distil_bert/distil_bert_masked_lm_preprocessor.py +2 -2
  63. keras_hub/src/models/distil_bert/distil_bert_presets.py +5 -10
  64. keras_hub/src/models/distil_bert/distil_bert_text_classifier.py +5 -5
  65. keras_hub/src/models/distil_bert/distil_bert_tokenizer.py +3 -3
  66. keras_hub/src/models/efficientnet/__init__.py +9 -0
  67. keras_hub/src/models/efficientnet/cba.py +141 -0
  68. keras_hub/src/models/efficientnet/efficientnet_backbone.py +160 -61
  69. keras_hub/src/models/efficientnet/efficientnet_image_classifier.py +14 -0
  70. keras_hub/src/models/efficientnet/efficientnet_image_classifier_preprocessor.py +16 -0
  71. keras_hub/src/models/efficientnet/efficientnet_image_converter.py +10 -0
  72. keras_hub/src/models/efficientnet/efficientnet_presets.py +193 -0
  73. keras_hub/src/models/efficientnet/fusedmbconv.py +84 -41
  74. keras_hub/src/models/efficientnet/mbconv.py +53 -22
  75. keras_hub/src/models/electra/electra_backbone.py +2 -2
  76. keras_hub/src/models/electra/electra_presets.py +6 -18
  77. keras_hub/src/models/f_net/f_net_presets.py +2 -6
  78. keras_hub/src/models/f_net/f_net_text_classifier.py +3 -3
  79. keras_hub/src/models/f_net/f_net_text_classifier_preprocessor.py +3 -3
  80. keras_hub/src/models/falcon/falcon_backbone.py +5 -3
  81. keras_hub/src/models/falcon/falcon_causal_lm.py +18 -8
  82. keras_hub/src/models/falcon/falcon_presets.py +1 -3
  83. keras_hub/src/models/falcon/falcon_tokenizer.py +7 -2
  84. keras_hub/src/models/feature_pyramid_backbone.py +1 -1
  85. keras_hub/src/models/flux/__init__.py +5 -0
  86. keras_hub/src/models/flux/flux_layers.py +496 -0
  87. keras_hub/src/models/flux/flux_maths.py +225 -0
  88. keras_hub/src/models/flux/flux_model.py +236 -0
  89. keras_hub/src/models/flux/flux_presets.py +3 -0
  90. keras_hub/src/models/flux/flux_text_to_image.py +146 -0
  91. keras_hub/src/models/flux/flux_text_to_image_preprocessor.py +73 -0
  92. keras_hub/src/models/gemma/gemma_backbone.py +35 -20
  93. keras_hub/src/models/gemma/gemma_causal_lm.py +2 -2
  94. keras_hub/src/models/gemma/gemma_decoder_block.py +3 -1
  95. keras_hub/src/models/gemma/gemma_presets.py +29 -63
  96. keras_hub/src/models/gpt2/gpt2_causal_lm.py +2 -2
  97. keras_hub/src/models/gpt2/gpt2_presets.py +5 -14
  98. keras_hub/src/models/gpt_neo_x/gpt_neo_x_attention.py +2 -1
  99. keras_hub/src/models/gpt_neo_x/gpt_neo_x_causal_lm.py +3 -3
  100. keras_hub/src/models/gpt_neo_x/gpt_neo_x_decoder.py +2 -1
  101. keras_hub/src/models/image_classifier.py +147 -2
  102. keras_hub/src/models/image_classifier_preprocessor.py +6 -3
  103. keras_hub/src/models/image_object_detector.py +87 -0
  104. keras_hub/src/models/image_object_detector_preprocessor.py +57 -0
  105. keras_hub/src/models/image_segmenter.py +0 -5
  106. keras_hub/src/models/image_segmenter_preprocessor.py +29 -4
  107. keras_hub/src/models/image_to_image.py +417 -0
  108. keras_hub/src/models/inpaint.py +520 -0
  109. keras_hub/src/models/llama/llama_backbone.py +138 -12
  110. keras_hub/src/models/llama/llama_causal_lm.py +3 -1
  111. keras_hub/src/models/llama/llama_presets.py +10 -20
  112. keras_hub/src/models/llama3/llama3_backbone.py +12 -11
  113. keras_hub/src/models/llama3/llama3_causal_lm.py +1 -1
  114. keras_hub/src/models/llama3/llama3_presets.py +4 -12
  115. keras_hub/src/models/llama3/llama3_tokenizer.py +25 -2
  116. keras_hub/src/models/mistral/mistral_backbone.py +16 -15
  117. keras_hub/src/models/mistral/mistral_causal_lm.py +6 -4
  118. keras_hub/src/models/mistral/mistral_presets.py +3 -9
  119. keras_hub/src/models/mistral/mistral_transformer_decoder.py +2 -1
  120. keras_hub/src/models/mit/__init__.py +6 -0
  121. keras_hub/src/models/{mix_transformer/mix_transformer_backbone.py → mit/mit_backbone.py} +47 -36
  122. keras_hub/src/models/mit/mit_image_classifier.py +12 -0
  123. keras_hub/src/models/mit/mit_image_classifier_preprocessor.py +12 -0
  124. keras_hub/src/models/mit/mit_image_converter.py +8 -0
  125. keras_hub/src/models/{mix_transformer/mix_transformer_layers.py → mit/mit_layers.py} +20 -13
  126. keras_hub/src/models/mit/mit_presets.py +139 -0
  127. keras_hub/src/models/mobilenet/mobilenet_backbone.py +8 -8
  128. keras_hub/src/models/mobilenet/mobilenet_image_classifier.py +0 -92
  129. keras_hub/src/models/opt/opt_causal_lm.py +2 -2
  130. keras_hub/src/models/opt/opt_presets.py +4 -12
  131. keras_hub/src/models/pali_gemma/pali_gemma_backbone.py +63 -17
  132. keras_hub/src/models/pali_gemma/pali_gemma_causal_lm.py +3 -1
  133. keras_hub/src/models/pali_gemma/pali_gemma_decoder_block.py +21 -23
  134. keras_hub/src/models/pali_gemma/pali_gemma_image_converter.py +2 -4
  135. keras_hub/src/models/pali_gemma/pali_gemma_presets.py +173 -17
  136. keras_hub/src/models/pali_gemma/pali_gemma_vit.py +14 -26
  137. keras_hub/src/models/phi3/phi3_causal_lm.py +3 -1
  138. keras_hub/src/models/phi3/phi3_decoder.py +0 -1
  139. keras_hub/src/models/phi3/phi3_presets.py +2 -6
  140. keras_hub/src/models/phi3/phi3_rotary_embedding.py +1 -1
  141. keras_hub/src/models/preprocessor.py +25 -11
  142. keras_hub/src/models/resnet/resnet_backbone.py +3 -14
  143. keras_hub/src/models/resnet/resnet_image_classifier.py +0 -137
  144. keras_hub/src/models/resnet/resnet_image_converter.py +2 -4
  145. keras_hub/src/models/resnet/resnet_presets.py +127 -18
  146. keras_hub/src/models/retinanet/__init__.py +5 -0
  147. keras_hub/src/models/retinanet/anchor_generator.py +52 -53
  148. keras_hub/src/models/retinanet/feature_pyramid.py +103 -39
  149. keras_hub/src/models/retinanet/non_max_supression.py +1 -0
  150. keras_hub/src/models/retinanet/prediction_head.py +192 -0
  151. keras_hub/src/models/retinanet/retinanet_backbone.py +146 -0
  152. keras_hub/src/models/retinanet/retinanet_image_converter.py +53 -0
  153. keras_hub/src/models/retinanet/retinanet_label_encoder.py +49 -51
  154. keras_hub/src/models/retinanet/retinanet_object_detector.py +381 -0
  155. keras_hub/src/models/retinanet/retinanet_object_detector_preprocessor.py +14 -0
  156. keras_hub/src/models/retinanet/retinanet_presets.py +16 -0
  157. keras_hub/src/models/roberta/roberta_backbone.py +2 -2
  158. keras_hub/src/models/roberta/roberta_presets.py +6 -8
  159. keras_hub/src/models/roberta/roberta_text_classifier.py +3 -3
  160. keras_hub/src/models/sam/__init__.py +5 -0
  161. keras_hub/src/models/sam/sam_backbone.py +2 -3
  162. keras_hub/src/models/sam/sam_image_converter.py +2 -4
  163. keras_hub/src/models/sam/sam_image_segmenter.py +16 -16
  164. keras_hub/src/models/sam/sam_image_segmenter_preprocessor.py +11 -1
  165. keras_hub/src/models/sam/sam_layers.py +5 -3
  166. keras_hub/src/models/sam/sam_presets.py +3 -9
  167. keras_hub/src/models/sam/sam_prompt_encoder.py +4 -2
  168. keras_hub/src/models/sam/sam_transformer.py +5 -4
  169. keras_hub/src/models/segformer/__init__.py +8 -0
  170. keras_hub/src/models/segformer/segformer_backbone.py +167 -0
  171. keras_hub/src/models/segformer/segformer_image_converter.py +8 -0
  172. keras_hub/src/models/segformer/segformer_image_segmenter.py +184 -0
  173. keras_hub/src/models/segformer/segformer_image_segmenter_preprocessor.py +31 -0
  174. keras_hub/src/models/segformer/segformer_presets.py +136 -0
  175. keras_hub/src/models/seq_2_seq_lm_preprocessor.py +1 -1
  176. keras_hub/src/models/stable_diffusion_3/flow_match_euler_discrete_scheduler.py +8 -1
  177. keras_hub/src/models/stable_diffusion_3/mmdit.py +577 -190
  178. keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_backbone.py +189 -163
  179. keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_image_to_image.py +178 -0
  180. keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_inpaint.py +193 -0
  181. keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_presets.py +43 -7
  182. keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_text_to_image.py +25 -14
  183. keras_hub/src/models/stable_diffusion_3/stable_diffusion_3_text_to_image_preprocessor.py +1 -1
  184. keras_hub/src/models/t5/t5_backbone.py +5 -4
  185. keras_hub/src/models/t5/t5_presets.py +47 -19
  186. keras_hub/src/models/task.py +47 -39
  187. keras_hub/src/models/text_classifier.py +2 -2
  188. keras_hub/src/models/text_to_image.py +106 -41
  189. keras_hub/src/models/vae/__init__.py +1 -0
  190. keras_hub/src/models/vae/vae_backbone.py +184 -0
  191. keras_hub/src/models/vae/vae_layers.py +739 -0
  192. keras_hub/src/models/vgg/__init__.py +5 -0
  193. keras_hub/src/models/vgg/vgg_backbone.py +4 -24
  194. keras_hub/src/models/vgg/vgg_image_classifier.py +139 -33
  195. keras_hub/src/models/vgg/vgg_image_classifier_preprocessor.py +12 -0
  196. keras_hub/src/models/vgg/vgg_image_converter.py +8 -0
  197. keras_hub/src/models/vgg/vgg_presets.py +48 -0
  198. keras_hub/src/models/vit/__init__.py +5 -0
  199. keras_hub/src/models/vit/vit_backbone.py +152 -0
  200. keras_hub/src/models/vit/vit_image_classifier.py +187 -0
  201. keras_hub/src/models/vit/vit_image_classifier_preprocessor.py +12 -0
  202. keras_hub/src/models/vit/vit_image_converter.py +73 -0
  203. keras_hub/src/models/vit/vit_layers.py +391 -0
  204. keras_hub/src/models/vit/vit_presets.py +126 -0
  205. keras_hub/src/models/vit_det/vit_det_backbone.py +6 -4
  206. keras_hub/src/models/vit_det/vit_layers.py +3 -3
  207. keras_hub/src/models/whisper/whisper_audio_converter.py +2 -4
  208. keras_hub/src/models/whisper/whisper_backbone.py +6 -5
  209. keras_hub/src/models/whisper/whisper_decoder.py +3 -5
  210. keras_hub/src/models/whisper/whisper_presets.py +10 -30
  211. keras_hub/src/models/xlm_roberta/xlm_roberta_masked_lm.py +1 -1
  212. keras_hub/src/models/xlm_roberta/xlm_roberta_masked_lm_preprocessor.py +2 -2
  213. keras_hub/src/models/xlm_roberta/xlm_roberta_presets.py +2 -6
  214. keras_hub/src/models/xlm_roberta/xlm_roberta_text_classifier.py +4 -4
  215. keras_hub/src/models/xlm_roberta/xlm_roberta_tokenizer.py +2 -1
  216. keras_hub/src/models/xlnet/relative_attention.py +20 -19
  217. keras_hub/src/models/xlnet/xlnet_backbone.py +2 -2
  218. keras_hub/src/models/xlnet/xlnet_content_and_query_embedding.py +3 -5
  219. keras_hub/src/models/xlnet/xlnet_encoder.py +7 -9
  220. keras_hub/src/samplers/contrastive_sampler.py +2 -3
  221. keras_hub/src/samplers/sampler.py +2 -1
  222. keras_hub/src/tests/test_case.py +41 -6
  223. keras_hub/src/tokenizers/byte_pair_tokenizer.py +7 -3
  224. keras_hub/src/tokenizers/byte_tokenizer.py +3 -10
  225. keras_hub/src/tokenizers/sentence_piece_tokenizer.py +2 -9
  226. keras_hub/src/tokenizers/sentence_piece_tokenizer_trainer.py +9 -11
  227. keras_hub/src/tokenizers/tokenizer.py +10 -13
  228. keras_hub/src/tokenizers/unicode_codepoint_tokenizer.py +9 -7
  229. keras_hub/src/tokenizers/word_piece_tokenizer_trainer.py +10 -3
  230. keras_hub/src/utils/keras_utils.py +2 -13
  231. keras_hub/src/utils/pipeline_model.py +3 -3
  232. keras_hub/src/utils/preset_utils.py +196 -144
  233. keras_hub/src/utils/tensor_utils.py +4 -4
  234. keras_hub/src/utils/timm/convert_densenet.py +6 -4
  235. keras_hub/src/utils/timm/convert_efficientnet.py +447 -0
  236. keras_hub/src/utils/timm/convert_resnet.py +1 -1
  237. keras_hub/src/utils/timm/convert_vgg.py +85 -0
  238. keras_hub/src/utils/timm/preset_loader.py +14 -9
  239. keras_hub/src/utils/transformers/convert_llama3.py +21 -5
  240. keras_hub/src/utils/transformers/convert_vit.py +150 -0
  241. keras_hub/src/utils/transformers/preset_loader.py +23 -0
  242. keras_hub/src/utils/transformers/safetensor_utils.py +4 -3
  243. keras_hub/src/version_utils.py +1 -1
  244. {keras_hub_nightly-0.16.1.dev202410020340.dist-info → keras_hub_nightly-0.19.0.dev202501260345.dist-info}/METADATA +86 -68
  245. keras_hub_nightly-0.19.0.dev202501260345.dist-info/RECORD +423 -0
  246. {keras_hub_nightly-0.16.1.dev202410020340.dist-info → keras_hub_nightly-0.19.0.dev202501260345.dist-info}/WHEEL +1 -1
  247. keras_hub/src/layers/preprocessing/resizing_image_converter.py +0 -138
  248. keras_hub/src/models/mix_transformer/__init__.py +0 -0
  249. keras_hub/src/models/mix_transformer/mix_transformer_classifier.py +0 -119
  250. keras_hub/src/models/stable_diffusion_3/vae_image_decoder.py +0 -320
  251. keras_hub_nightly-0.16.1.dev202410020340.dist-info/RECORD +0 -357
  252. {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 " "length is 256"
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/2",
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/2",
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/2",
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/2",
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 " "is 512"
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/2",
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 # noqa: E501
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 # noqa: E501
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, input_shape):
315
- self.vision_embeddings.build(input_shape)
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
- inputs = backbone.inputs
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 save_serialized_object
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.config_name = kwargs.pop("config_name", PREPROCESSOR_CONFIG_FILE)
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
- "config_name": self.config_name,
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
- config_name=PREPROCESSOR_CONFIG_FILE,
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.GemmaCausalLMPreprocessor.from_preset(
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.BertTextClassifierPreprocessor.from_preset(
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, config_name, **kwargs)
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
- save_serialized_object(self, preset_dir, config_file=self.config_name)
213
- for layer in self._flatten_layers(include_self=False):
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, 255, size=(2, 224, 224, 3))
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("resnet50")
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: