keras-hub-nightly 0.23.0.dev202509190415__py3-none-any.whl → 0.23.0.dev202509280419__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.

Potentially problematic release.


This version of keras-hub-nightly might be problematic. Click here for more details.

Files changed (32) hide show
  1. keras_hub/layers/__init__.py +3 -0
  2. keras_hub/models/__init__.py +24 -0
  3. keras_hub/src/models/depth_anything/__init__.py +9 -0
  4. keras_hub/src/models/depth_anything/depth_anything_backbone.py +232 -0
  5. keras_hub/src/models/depth_anything/depth_anything_depth_estimator.py +70 -0
  6. keras_hub/src/models/depth_anything/depth_anything_depth_estimator_preprocessor.py +16 -0
  7. keras_hub/src/models/depth_anything/depth_anything_image_converter.py +10 -0
  8. keras_hub/src/models/depth_anything/depth_anything_layers.py +725 -0
  9. keras_hub/src/models/depth_anything/depth_anything_loss.py +89 -0
  10. keras_hub/src/models/depth_anything/depth_anything_presets.py +4 -0
  11. keras_hub/src/models/depth_anything/interpolate.py +62 -0
  12. keras_hub/src/models/depth_estimator.py +239 -0
  13. keras_hub/src/models/depth_estimator_preprocessor.py +78 -0
  14. keras_hub/src/models/dinov2/dinov2_backbone.py +29 -3
  15. keras_hub/src/models/dinov2/dinov2_layers.py +13 -3
  16. keras_hub/src/models/qwen3_moe/qwen3_moe_attention.py +371 -0
  17. keras_hub/src/models/qwen3_moe/qwen3_moe_backbone.py +365 -0
  18. keras_hub/src/models/qwen3_moe/qwen3_moe_causal_lm.py +357 -0
  19. keras_hub/src/models/qwen3_moe/qwen3_moe_causal_lm_preprocessor.py +12 -0
  20. keras_hub/src/models/qwen3_moe/qwen3_moe_decoder.py +672 -0
  21. keras_hub/src/models/qwen3_moe/qwen3_moe_layernorm.py +45 -0
  22. keras_hub/src/models/qwen3_moe/qwen3_moe_tokenizer.py +48 -0
  23. keras_hub/src/tests/test_case.py +3 -2
  24. keras_hub/src/utils/transformers/convert_dinov2.py +1 -0
  25. keras_hub/src/utils/transformers/convert_qwen3_moe.py +216 -0
  26. keras_hub/src/utils/transformers/preset_loader.py +3 -0
  27. keras_hub/src/version.py +1 -1
  28. keras_hub/tokenizers/__init__.py +3 -0
  29. {keras_hub_nightly-0.23.0.dev202509190415.dist-info → keras_hub_nightly-0.23.0.dev202509280419.dist-info}/METADATA +1 -1
  30. {keras_hub_nightly-0.23.0.dev202509190415.dist-info → keras_hub_nightly-0.23.0.dev202509280419.dist-info}/RECORD +32 -13
  31. {keras_hub_nightly-0.23.0.dev202509190415.dist-info → keras_hub_nightly-0.23.0.dev202509280419.dist-info}/WHEEL +0 -0
  32. {keras_hub_nightly-0.23.0.dev202509190415.dist-info → keras_hub_nightly-0.23.0.dev202509280419.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,45 @@
1
+ import keras
2
+ from keras import ops
3
+
4
+
5
+ class Qwen3MoeLayerNorm(keras.layers.Layer):
6
+ """A normalization layer for Qwen that implements RMS normalization.
7
+
8
+ Args:
9
+ head_dim: int. The dimension of each attention head, used for per-head
10
+ normalization. Defaults to `None`.
11
+ epsilon: float. A small float added to variance to avoid dividing by
12
+ zero. Defaults to `1e-6`.
13
+ """
14
+
15
+ def __init__(self, head_dim=None, epsilon=1e-6, **kwargs):
16
+ super().__init__(**kwargs)
17
+ self.head_dim = head_dim
18
+ self.epsilon = epsilon
19
+
20
+ def build(self, input_shape):
21
+ if self.head_dim:
22
+ dim = self.head_dim
23
+ else:
24
+ dim = input_shape[-1]
25
+
26
+ self.scale = self.add_weight(
27
+ name="scale",
28
+ trainable=True,
29
+ shape=(dim,),
30
+ initializer="ones",
31
+ dtype=self.variable_dtype,
32
+ )
33
+ self.built = True
34
+
35
+ def call(self, x):
36
+ input_dtype = x.dtype
37
+ x = ops.cast(x, "float32")
38
+ var = ops.mean(ops.power(x, 2), axis=-1, keepdims=True)
39
+ x = x * ops.rsqrt(var + self.epsilon)
40
+ return ops.cast(x * self.scale, input_dtype)
41
+
42
+ def get_config(self):
43
+ config = super().get_config()
44
+ config.update({"epsilon": self.epsilon, "head_dim": self.head_dim})
45
+ return config
@@ -0,0 +1,48 @@
1
+ from keras_hub.src.api_export import keras_hub_export
2
+ from keras_hub.src.models.qwen3_moe.qwen3_moe_backbone import Qwen3MoeBackbone
3
+ from keras_hub.src.tokenizers.byte_pair_tokenizer import BytePairTokenizer
4
+
5
+
6
+ @keras_hub_export(
7
+ "keras_hub.tokenizers.Qwen3MoeTokenizer",
8
+ )
9
+ class Qwen3MoeTokenizer(BytePairTokenizer):
10
+ """Tokenizer for Qwen Moe model.
11
+
12
+ This tokenizer implements byte-pair encoding (BPE) for Qwen models,
13
+ handling special tokens like BOS (beginning of sequence) and EOS (end of
14
+ sequence).
15
+
16
+ Args:
17
+ vocabulary: Dictionary mapping tokens to token IDs, or path to
18
+ vocabulary file.
19
+ merges: List of BPE merges, or path to merges file.
20
+ bos_token: Beginning of sequence token. Defaults to None.
21
+ eos_token: End of sequence token. Defaults to "<|endoftext|>".
22
+ misc_special_tokens: Set of additional special tokens. Defaults to
23
+ empty set.
24
+ """
25
+
26
+ backbone_cls = Qwen3MoeBackbone
27
+
28
+ def __init__(
29
+ self,
30
+ vocabulary=None,
31
+ merges=None,
32
+ **kwargs,
33
+ ):
34
+ # Add EOS token
35
+ eos_token = "<|im_end|>"
36
+ self._add_special_token(eos_token, "end_token")
37
+
38
+ pad_token = "<|endoftext|>"
39
+ self._add_special_token(pad_token, "pad_token")
40
+
41
+ self.start_token_id = None
42
+ self.start_token = None
43
+
44
+ super().__init__(
45
+ vocabulary=vocabulary,
46
+ merges=merges,
47
+ **kwargs,
48
+ )
@@ -538,10 +538,11 @@ class TestCase(tf.test.TestCase, parameterized.TestCase):
538
538
 
539
539
  self.assertIsInstance(output_data, dict)
540
540
  self.assertEqual(
541
- list(output_data.keys()), list(backbone.pyramid_outputs.keys())
541
+ sorted(output_data.keys()),
542
+ sorted(backbone.pyramid_outputs.keys()),
542
543
  )
543
544
  self.assertEqual(
544
- list(output_data.keys()), expected_pyramid_output_keys
545
+ sorted(output_data.keys()), sorted(expected_pyramid_output_keys)
545
546
  )
546
547
  # check height and width of each level.
547
548
  for i, (k, v) in enumerate(output_data.items()):
@@ -29,6 +29,7 @@ def convert_backbone_config(transformers_config):
29
29
  "image_shape": (image_size, image_size, 3),
30
30
  "position_embedding_shape": (image_size, image_size),
31
31
  "antialias_in_interpolation": antialias_in_interpolation,
32
+ "apply_layernorm": transformers_config.get("apply_layernorm", False),
32
33
  }
33
34
 
34
35
 
@@ -0,0 +1,216 @@
1
+ import numpy as np
2
+
3
+ from keras_hub.src.models.qwen3_moe.qwen3_moe_backbone import Qwen3MoeBackbone
4
+ from keras_hub.src.utils.preset_utils import load_json
5
+
6
+ backbone_cls = Qwen3MoeBackbone
7
+
8
+
9
+ def convert_backbone_config(transformers_config):
10
+ return {
11
+ "vocabulary_size": transformers_config["vocab_size"],
12
+ "hidden_dim": transformers_config["hidden_size"],
13
+ "head_dim": transformers_config["head_dim"],
14
+ "num_layers": transformers_config["num_hidden_layers"],
15
+ "num_query_heads": transformers_config["num_attention_heads"],
16
+ "num_key_value_heads": transformers_config["num_key_value_heads"],
17
+ "intermediate_dim": transformers_config["intermediate_size"],
18
+ "moe_intermediate_dim": transformers_config["moe_intermediate_size"],
19
+ "num_experts": transformers_config["num_experts"],
20
+ "top_k": transformers_config["num_experts_per_tok"],
21
+ "norm_top_k_prob": transformers_config["norm_topk_prob"],
22
+ "decoder_sparse_step": transformers_config["decoder_sparse_step"],
23
+ "layer_norm_epsilon": transformers_config["rms_norm_eps"],
24
+ "rope_max_wavelength": transformers_config["rope_theta"],
25
+ "sliding_window_size": transformers_config["sliding_window"],
26
+ "router_aux_loss_coefficient": transformers_config[
27
+ "router_aux_loss_coef"
28
+ ],
29
+ "tie_word_embeddings": transformers_config.get(
30
+ "tie_word_embeddings", False
31
+ ),
32
+ }
33
+
34
+
35
+ def convert_weights(backbone, loader, transformers_config):
36
+ loader.port_weight(
37
+ keras_variable=backbone.get_layer("token_embedding").embeddings,
38
+ hf_weight_key="model.embed_tokens.weight",
39
+ )
40
+ if not backbone.tie_word_embeddings:
41
+ loader.port_weight(
42
+ keras_variable=backbone.get_layer(
43
+ "token_embedding"
44
+ ).reverse_embeddings,
45
+ hf_weight_key="lm_head.weight",
46
+ # rearrange_pattern="b a -> a b",
47
+ hook_fn=lambda hf_tensor, _: np.transpose(hf_tensor, axes=(1, 0)),
48
+ )
49
+
50
+ def transpose_and_reshape(x, shape):
51
+ return np.reshape(np.transpose(x), shape)
52
+
53
+ for i in range(backbone.num_layers):
54
+ decoder_layer = backbone.get_layer(f"transformer_layer_{i}")
55
+
56
+ # Input layernorm
57
+ loader.port_weight(
58
+ keras_variable=decoder_layer._self_attention_layernorm.scale,
59
+ hf_weight_key=f"model.layers.{i}.input_layernorm.weight",
60
+ )
61
+
62
+ # Attention layers
63
+
64
+ ## Query
65
+ loader.port_weight(
66
+ keras_variable=decoder_layer._self_attention_layer._query_dense.kernel,
67
+ hf_weight_key=f"model.layers.{i}.self_attn.q_proj.weight",
68
+ hook_fn=transpose_and_reshape,
69
+ )
70
+ loader.port_weight(
71
+ keras_variable=decoder_layer._self_attention_layer._query_dense_layer_norm.scale,
72
+ hf_weight_key=f"model.layers.{i}.self_attn.q_norm.weight",
73
+ )
74
+ ## Key
75
+ loader.port_weight(
76
+ keras_variable=decoder_layer._self_attention_layer._key_dense.kernel,
77
+ hf_weight_key=f"model.layers.{i}.self_attn.k_proj.weight",
78
+ hook_fn=transpose_and_reshape,
79
+ )
80
+ loader.port_weight(
81
+ keras_variable=decoder_layer._self_attention_layer._key_dense_layer_norm.scale,
82
+ hf_weight_key=f"model.layers.{i}.self_attn.k_norm.weight",
83
+ )
84
+ ## Value
85
+ loader.port_weight(
86
+ keras_variable=decoder_layer._self_attention_layer._value_dense.kernel,
87
+ hf_weight_key=f"model.layers.{i}.self_attn.v_proj.weight",
88
+ hook_fn=transpose_and_reshape,
89
+ )
90
+ ## Output
91
+ loader.port_weight(
92
+ keras_variable=decoder_layer._self_attention_layer._output_dense.kernel,
93
+ hf_weight_key=f"model.layers.{i}.self_attn.o_proj.weight",
94
+ # rearrange_patterns="c (a b) -> a b c",
95
+ # rearrange_dims={"a": backbone.num_query_heads},
96
+ hook_fn=transpose_and_reshape,
97
+ )
98
+
99
+ # MLP layers
100
+ if (
101
+ (i not in backbone.mlp_only_layers)
102
+ and backbone.num_experts > 0
103
+ and ((i + 1) % backbone.decoder_sparse_step == 0)
104
+ ):
105
+ # MoE layers
106
+ loader.port_weight(
107
+ keras_variable=decoder_layer.mlp._sparse_feedforward_gate_dense.kernel,
108
+ hf_weight_key=f"model.layers.{i}.mlp.gate.weight",
109
+ # rearrange_patterns="b a -> a b",
110
+ hook_fn=lambda hf_tensor, _: np.transpose(
111
+ hf_tensor, axes=(1, 0)
112
+ ),
113
+ )
114
+ # Batched experts: gate_up_proj and down_proj
115
+ gate_up_proj_list = []
116
+ down_proj_list = []
117
+ for expert_idx in range(backbone.num_experts):
118
+ # Load gate_proj and up_proj for each expert
119
+ gate_proj = loader.get_tensor(
120
+ f"model.layers.{i}.mlp.experts.{expert_idx}.gate_proj.weight"
121
+ )
122
+ up_proj = loader.get_tensor(
123
+ f"model.layers.{i}.mlp.experts.{expert_idx}.up_proj.weight"
124
+ )
125
+ # Transpose to (hidden_dim, intermediate_dim)
126
+ gate_proj = np.transpose(gate_proj, axes=(1, 0))
127
+ up_proj = np.transpose(up_proj, axes=(1, 0))
128
+ # Concatenate gate_proj and up_proj along the last dimension
129
+ gate_up_proj = np.concatenate([gate_proj, up_proj], axis=-1)
130
+ gate_up_proj_list.append(gate_up_proj)
131
+
132
+ # Load down_proj for each expert
133
+ down_proj = loader.get_tensor(
134
+ f"model.layers.{i}.mlp.experts.{expert_idx}.down_proj.weight"
135
+ )
136
+ down_proj = np.transpose(
137
+ down_proj, axes=(1, 0)
138
+ ) # (intermediate_dim, hidden_dim)
139
+ down_proj_list.append(down_proj)
140
+
141
+ # Stack the lists to create batched weights
142
+ gate_up_proj_batched = np.stack(
143
+ gate_up_proj_list, axis=0
144
+ ) # (num_experts, hidden_dim, 2 * intermediate_dim)
145
+ down_proj_batched = np.stack(
146
+ down_proj_list, axis=0
147
+ ) # (num_experts, intermediate_dim, hidden_dim)
148
+
149
+ # Assign batched weights to expert_bank
150
+ decoder_layer.mlp.expert_bank._expert_feedforward_gate_dense.assign(
151
+ gate_up_proj_batched
152
+ )
153
+ decoder_layer.mlp.expert_bank._expert_feedforward_output_dense.assign(
154
+ down_proj_batched
155
+ )
156
+ else:
157
+ loader.port_weight(
158
+ keras_variable=decoder_layer._feedforward_intermediate_dense.kernel,
159
+ hf_weight_key=f"model.layers.{i}.mlp.up_proj.weight",
160
+ # rearrange_patterns="b a -> a b",
161
+ hook_fn=lambda hf_tensor, _: np.transpose(
162
+ hf_tensor, axes=(1, 0)
163
+ ),
164
+ )
165
+ loader.port_weight(
166
+ keras_variable=decoder_layer._feedforward_output_dense.kernel,
167
+ hf_weight_key=f"model.layers.{i}.mlp.down_proj.weight",
168
+ # rearrange_patterns="b a -> a b",
169
+ hook_fn=lambda hf_tensor, _: np.transpose(
170
+ hf_tensor, axes=(1, 0)
171
+ ),
172
+ )
173
+ loader.port_weight(
174
+ keras_variable=decoder_layer._feedforward_gate_dense.kernel,
175
+ hf_weight_key=f"model.layers.{i}.mlp.gate_proj.weight",
176
+ # rearrange_patterns="b a -> a b",
177
+ hook_fn=lambda hf_tensor, _: np.transpose(
178
+ hf_tensor, axes=(1, 0)
179
+ ),
180
+ )
181
+
182
+ # Feedforward layernorm
183
+ loader.port_weight(
184
+ keras_variable=decoder_layer._feedforward_layernorm.scale,
185
+ hf_weight_key=f"model.layers.{i}.post_attention_layernorm.weight",
186
+ )
187
+
188
+ # Final normalization layer
189
+ loader.port_weight(
190
+ keras_variable=backbone.get_layer("sequence_output_layernorm").scale,
191
+ hf_weight_key="model.norm.weight",
192
+ )
193
+
194
+ return backbone
195
+
196
+
197
+ def convert_tokenizer(cls, preset, **kwargs):
198
+ tokenizer_config = load_json(preset, "tokenizer.json")
199
+ vocab = tokenizer_config["model"]["vocab"]
200
+ merges = tokenizer_config["model"]["merges"]
201
+ merges = [" ".join(item) for item in merges]
202
+
203
+ # Load all special tokens with the exception of "reserved" ones.
204
+ special_tokens = set()
205
+ for token in tokenizer_config["added_tokens"]:
206
+ if not token["content"].startswith("<|reserved_special_token_"):
207
+ vocab[token["content"]] = token["id"]
208
+ special_tokens.add(token["content"])
209
+
210
+ kwargs.update(
211
+ {
212
+ "unsplittable_tokens": list(special_tokens),
213
+ }
214
+ )
215
+
216
+ return cls(vocabulary=vocab, merges=merges, **kwargs)
@@ -18,6 +18,7 @@ from keras_hub.src.utils.transformers import convert_mixtral
18
18
  from keras_hub.src.utils.transformers import convert_pali_gemma
19
19
  from keras_hub.src.utils.transformers import convert_qwen
20
20
  from keras_hub.src.utils.transformers import convert_qwen3
21
+ from keras_hub.src.utils.transformers import convert_qwen3_moe
21
22
  from keras_hub.src.utils.transformers import convert_qwen_moe
22
23
  from keras_hub.src.utils.transformers import convert_t5gemma
23
24
  from keras_hub.src.utils.transformers import convert_vit
@@ -61,6 +62,8 @@ class TransformersPresetLoader(PresetLoader):
61
62
  self.converter = convert_mixtral
62
63
  elif model_type == "qwen2_moe":
63
64
  self.converter = convert_qwen_moe
65
+ elif model_type == "qwen3_moe":
66
+ self.converter = convert_qwen3_moe
64
67
  elif model_type == "qwen3":
65
68
  self.converter = convert_qwen3
66
69
  elif model_type == "t5gemma":
keras_hub/src/version.py CHANGED
@@ -1,7 +1,7 @@
1
1
  from keras_hub.src.api_export import keras_hub_export
2
2
 
3
3
  # Unique source of truth for the version number.
4
- __version__ = "0.23.0.dev202509190415"
4
+ __version__ = "0.23.0.dev202509280419"
5
5
 
6
6
 
7
7
  @keras_hub_export("keras_hub.version")
@@ -78,6 +78,9 @@ from keras_hub.src.models.qwen.qwen_tokenizer import (
78
78
  from keras_hub.src.models.qwen.qwen_tokenizer import (
79
79
  QwenTokenizer as QwenTokenizer,
80
80
  )
81
+ from keras_hub.src.models.qwen3_moe.qwen3_moe_tokenizer import (
82
+ Qwen3MoeTokenizer as Qwen3MoeTokenizer,
83
+ )
81
84
  from keras_hub.src.models.qwen_moe.qwen_moe_tokenizer import (
82
85
  QwenMoeTokenizer as QwenMoeTokenizer,
83
86
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: keras-hub-nightly
3
- Version: 0.23.0.dev202509190415
3
+ Version: 0.23.0.dev202509280419
4
4
  Summary: Pretrained models for Keras.
5
5
  Author-email: Keras team <keras-users@googlegroups.com>
6
6
  License-Expression: Apache-2.0
@@ -1,11 +1,11 @@
1
1
  keras_hub/__init__.py,sha256=bJbUZkqwhZvTb1Tqx1fbkq6mzBYiEyq-Hin3oQIkhdE,558
2
- keras_hub/layers/__init__.py,sha256=GUDgi0KdORQnv-rH_IRQQ1cCwb-wGQFHy6Vdb7H6FA8,5660
2
+ keras_hub/layers/__init__.py,sha256=8FTy8HwjgFdBvbl_QKTxXmOc13TXjUUBgLYrSTtkc0M,5807
3
3
  keras_hub/metrics/__init__.py,sha256=KYalsMPBnfwim9BdGHFfJ5WxUKFXOQ1QoKIMT_0lwlM,439
4
- keras_hub/models/__init__.py,sha256=Est6LugIjoAFkpTgqZWfISk-1NVMH_k-4soHCHaMmyM,29696
4
+ keras_hub/models/__init__.py,sha256=wy75CGuTVxRIEXSCqmXgMyf23vUbuRbByWrlAaPWXB0,30737
5
5
  keras_hub/samplers/__init__.py,sha256=aFQIkiqbZpi8vjrPp2MVII4QUfE-eQjra5fMeHsoy7k,886
6
6
  keras_hub/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  keras_hub/src/api_export.py,sha256=9pQZK27JObxWZ96QPLBp1OBsjWigh1iuV6RglPGMRk0,1499
8
- keras_hub/src/version.py,sha256=qBNsfvVj06y9TaC0rRyBoOFXlhAoTAMHAYMCMEyXsDY,222
8
+ keras_hub/src/version.py,sha256=0tAlNHf1D3kDAgKZGBPUBzVIyetqgBNYLSG1UnyUu7I,222
9
9
  keras_hub/src/layers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  keras_hub/src/layers/modeling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  keras_hub/src/layers/modeling/alibi_bias.py,sha256=1XBTHI52L_iJDhN_w5ydu_iMhCuTgQAxEPwcLA6BPuk,4411
@@ -46,6 +46,8 @@ keras_hub/src/models/audio_to_text_preprocessor.py,sha256=GS-WWyJ6aSsPRxi_0bxvxA
46
46
  keras_hub/src/models/backbone.py,sha256=BdqPsne7lIITIxn6jY6AN4vZ-Rc9VnpqTxvVNR3CS7M,12210
47
47
  keras_hub/src/models/causal_lm.py,sha256=FHGpbyFrDrnPSv5eRLfDgcpvjS6jDhSokMRl-kuumyg,18164
48
48
  keras_hub/src/models/causal_lm_preprocessor.py,sha256=nxl-sfmCfkfl6JmVRASa878QbaZUgWSA6Jdu48x4-dY,7155
49
+ keras_hub/src/models/depth_estimator.py,sha256=JR7wtunOPrfEoDkLspoZnL2ItWhZFDeAxxw2vue5QLs,8992
50
+ keras_hub/src/models/depth_estimator_preprocessor.py,sha256=2iE8NAUyiD2AvjZwNoXKUaOUogcE1fRzTNXLQ75GZpQ,2822
49
51
  keras_hub/src/models/feature_pyramid_backbone.py,sha256=clEW-TTQSVJ_5qFNdDF0iABkin1p_xlBUFjJrC7T0IA,2247
50
52
  keras_hub/src/models/image_classifier.py,sha256=yt6cjhPfqs8A_eWXBsXdXFzn-aRgH2rVHUq7Zu7CyK8,7804
51
53
  keras_hub/src/models/image_classifier_preprocessor.py,sha256=Bf7jSqHB1hX2ZWoWQS4GcXNOY_EjeoJi-_vtzCAqw4o,2690
@@ -160,10 +162,19 @@ keras_hub/src/models/densenet/densenet_image_classifier.py,sha256=ye-Ix3oU42pfsD
160
162
  keras_hub/src/models/densenet/densenet_image_classifier_preprocessor.py,sha256=xDZbTw_h6pjLDzf8QmbDyMnMsFzgh-dPX1ldg9kddhg,563
161
163
  keras_hub/src/models/densenet/densenet_image_converter.py,sha256=DoxYlJVZ9uaabFhVjWOmzvhONoc8KNcQj2vQ6Z1AUpU,354
162
164
  keras_hub/src/models/densenet/densenet_presets.py,sha256=d2GEB9cWYrzP8Qj1w8CWiRW976MibQBuk_YQYvgCzr4,1222
165
+ keras_hub/src/models/depth_anything/__init__.py,sha256=NAU7sgJ68ddqKO0X8h5C1V0QC8PQ2lT8QdmM-oZe91M,321
166
+ keras_hub/src/models/depth_anything/depth_anything_backbone.py,sha256=bZzfCJI5Altrs85t8f_QYfQ-C-uhgaWXz_TWQBdaJsU,9308
167
+ keras_hub/src/models/depth_anything/depth_anything_depth_estimator.py,sha256=sqAgwA5x2U8EhoRQhLNgHynFzFY5dKUZs8xFTMrxrMM,2904
168
+ keras_hub/src/models/depth_anything/depth_anything_depth_estimator_preprocessor.py,sha256=ucmXNfY5RoRRYlSvRBZzZm6CuBGbHVlbiehXiM_yOg8,621
169
+ keras_hub/src/models/depth_anything/depth_anything_image_converter.py,sha256=Xutwc8IyklFilDcc4psNBwPGRDcFlzalWXsHvEz7rUc,395
170
+ keras_hub/src/models/depth_anything/depth_anything_layers.py,sha256=_43iEE7F8P7BL4xssjpPeFyhiDk4gGLu-wPxuqQ-nT8,27739
171
+ keras_hub/src/models/depth_anything/depth_anything_loss.py,sha256=GJqzvLkCZrWsMDO6T2Gt_9-TYJqorfNnyOXSNgLUjQg,3389
172
+ keras_hub/src/models/depth_anything/depth_anything_presets.py,sha256=mJ1Kg6J5lP1GkrEDH_qS1XJ__98Tjt5noRZVZaHCn9k,121
173
+ keras_hub/src/models/depth_anything/interpolate.py,sha256=qwrPGP6wA4jZ-XcSeulhkyxPDiMRxHlC92EqSd0H5Tk,2041
163
174
  keras_hub/src/models/dinov2/__init__.py,sha256=qacZi82EfAloVND4gDLZjqgR5_yVdz_dc4mMKyCsjOA,257
164
- keras_hub/src/models/dinov2/dinov2_backbone.py,sha256=kwzd5eqftMS0m5v1HB_4y7JiHxp13ECgG9dNsDoknWo,9491
175
+ keras_hub/src/models/dinov2/dinov2_backbone.py,sha256=QH3lzE1EnxTcOSii9KS1Qx3lq0XcZMsvElB7AL_ejZY,10672
165
176
  keras_hub/src/models/dinov2/dinov2_image_converter.py,sha256=gfFROdYV5rOzo3kJFlRvRHYjek8z9YirKfrFwlVJO3g,342
166
- keras_hub/src/models/dinov2/dinov2_layers.py,sha256=-G3elRWDy09_VPJDJa0qYS5P8vkBGgxPooMZhy2ifu0,33140
177
+ keras_hub/src/models/dinov2/dinov2_layers.py,sha256=UCcia2kWA1O37SMmUbyhUcSXmUpLfNjk1E6mPTPDrF0,33647
167
178
  keras_hub/src/models/dinov2/dinov2_presets.py,sha256=ho493GPH98K4LH1E54UV2qZZ4h7Un9ylbBmMQjNoKh4,2937
168
179
  keras_hub/src/models/distil_bert/__init__.py,sha256=3Z0w-Mt3aOR0u9RGzjHQ7B3J3qBF2pGjupDGQ9yyzoc,303
169
180
  keras_hub/src/models/distil_bert/distil_bert_backbone.py,sha256=rnAf_GokB3wAeJwVZtgUKQO_bKJIa8RavhL_ykTJpNw,6440
@@ -371,6 +382,13 @@ keras_hub/src/models/qwen3/qwen3_decoder.py,sha256=68s9jQj53zFmXE4-SGXKYHu546fXO
371
382
  keras_hub/src/models/qwen3/qwen3_layernorm.py,sha256=EJxjf7Pr6ufPQnNeuYQxkExzPjPk4PQxqMsoBeSEkDo,1073
372
383
  keras_hub/src/models/qwen3/qwen3_presets.py,sha256=eAqRbjLyRTSXcN-jnGHqoCHejKm2gmt8_zL4EPoE-JA,2518
373
384
  keras_hub/src/models/qwen3/qwen3_tokenizer.py,sha256=LmPtg0vprMchDvYfTj8m5PraXI2QS3-YgdIIpIm5iAs,1448
385
+ keras_hub/src/models/qwen3_moe/qwen3_moe_attention.py,sha256=rZnzWA-cAhuWSuHSJfrNqf5_Cu0PNEe7PKbPNbhJdeM,13355
386
+ keras_hub/src/models/qwen3_moe/qwen3_moe_backbone.py,sha256=gguc_M5akemEaQCklTDFiABSRa4nwa4IuDzlfzRRpKM,14618
387
+ keras_hub/src/models/qwen3_moe/qwen3_moe_causal_lm.py,sha256=g3IlpuNzKbcAt_VBYnm895GBLQIPDuMP9eVbL44tf-A,13286
388
+ keras_hub/src/models/qwen3_moe/qwen3_moe_causal_lm_preprocessor.py,sha256=CU5sH0bljNCPuN7sKNnP1FV-jexc12WK0HFU7RWsAvU,499
389
+ keras_hub/src/models/qwen3_moe/qwen3_moe_decoder.py,sha256=lUmDkxrikv4s40tcT9a8muCbEbfUBN97nTFWQEelIJw,25926
390
+ keras_hub/src/models/qwen3_moe/qwen3_moe_layernorm.py,sha256=T6BjJm93F37_0XrrqkWPPXXg4DFOt3f6Al0LDF8N15Y,1360
391
+ keras_hub/src/models/qwen3_moe/qwen3_moe_tokenizer.py,sha256=tDx1WSxmpiWn39NhzkQO-YUbdy713RYHKc_F-EUa6Tw,1473
374
392
  keras_hub/src/models/qwen_moe/__init__.py,sha256=5D8GUmVDsJs0J4sVZHcXOLkZf12U96l-WtwyVee4lu8,267
375
393
  keras_hub/src/models/qwen_moe/qwen_moe_attention.py,sha256=o0mcVTDMtElMYq3NSYRCfuYVdF-W8YDSU5ogensrVJg,13277
376
394
  keras_hub/src/models/qwen_moe/qwen_moe_backbone.py,sha256=nrfELvIvRLmrgKrUNXci2CrecmeI6bWzJj7HH-RcWJA,15341
@@ -523,7 +541,7 @@ keras_hub/src/samplers/serialization.py,sha256=K6FC4AY1sfOLLIk2k4G783XWnQ_Rk3z1Q
523
541
  keras_hub/src/samplers/top_k_sampler.py,sha256=WSyrhmOCan55X2JYAnNWE88rkx66sXqdoerl87nOrDQ,2250
524
542
  keras_hub/src/samplers/top_p_sampler.py,sha256=9r29WdqBlrW_2TBma6QqkRps2Uit4a6iZPmq1Gsiuko,3400
525
543
  keras_hub/src/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
526
- keras_hub/src/tests/test_case.py,sha256=MgvZrz9bz_ubOEAt0D4q5ZiX_UUarHaV8taXoXFuz4U,29260
544
+ keras_hub/src/tests/test_case.py,sha256=Ie0L8NbFJjSO0NWcjU0BRQRdbyCLxT1ru2M0FdU_uHo,29291
527
545
  keras_hub/src/tests/mocks/mock_gemma3_tokenizer.py,sha256=a4mSer84-xh9dVJUVpFUPzglCh-7NcFqHRKPDR35c8c,4888
528
546
  keras_hub/src/tokenizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
529
547
  keras_hub/src/tokenizers/byte_pair_tokenizer.py,sha256=WeUlHMAf5y_MUjFIfVhEcFoOZu-z4kkSj-Dq-pegM9w,24052
@@ -558,7 +576,7 @@ keras_hub/src/utils/transformers/convert_albert.py,sha256=VdKclZpCxtDWq3UbUUQZf4
558
576
  keras_hub/src/utils/transformers/convert_bart.py,sha256=Tk4h9Md9rwN5wjQbGIVrC7qzDpF8kI8qm-FKL8HlUok,14411
559
577
  keras_hub/src/utils/transformers/convert_bert.py,sha256=4gQqXCJzC9QWdLPDUAq741K8t_kjPIET050YjUnLeDA,5977
560
578
  keras_hub/src/utils/transformers/convert_deit.py,sha256=ubcqYzMlhWTCE2S_TsXICCMmqjN9RsQPaw_70vArnjo,5306
561
- keras_hub/src/utils/transformers/convert_dinov2.py,sha256=FvmB3ggEgowVFPSO5WOzC2hKkG2JvjSb-DeVffu78iU,6908
579
+ keras_hub/src/utils/transformers/convert_dinov2.py,sha256=Zmxz33hKJCcykQOcW8XhG_Yy1l8XqIYam1cjzM69-Mk,6986
562
580
  keras_hub/src/utils/transformers/convert_distilbert.py,sha256=SlfIRhSRk5c1ir2HGiDPiXa5XdOId_DbcnZO9lbwyZ8,6498
563
581
  keras_hub/src/utils/transformers/convert_esm.py,sha256=rOgGnNY37ZbYnoVC3L-Y-yGGAxTRmYtQV0nJoandH2Y,6214
564
582
  keras_hub/src/utils/transformers/convert_gemma.py,sha256=ElCgwBpSN5Q7rV5PJawTsoytPzs5ZjuwoY60YAe8y_A,6533
@@ -569,16 +587,17 @@ keras_hub/src/utils/transformers/convert_mixtral.py,sha256=PxeCY8Xe7U_caICugwOCE
569
587
  keras_hub/src/utils/transformers/convert_pali_gemma.py,sha256=B1leeDw96Yvu81hYumf66hIid07k5NLqoeWAJgPnaLs,10649
570
588
  keras_hub/src/utils/transformers/convert_qwen.py,sha256=WUxMAEFVqRs7TRw7QU5TH3_ev4yf02R1xFVliMvTQqg,5886
571
589
  keras_hub/src/utils/transformers/convert_qwen3.py,sha256=LIormvCMWPq6X9Wo2eNbADjtFZ0nI7tFGZFBxmo4GKw,5700
590
+ keras_hub/src/utils/transformers/convert_qwen3_moe.py,sha256=4Cr2haS20VNHF1iqKRpKeZ47baV0TAXg87zkCfl-JTg,8876
572
591
  keras_hub/src/utils/transformers/convert_qwen_moe.py,sha256=a7R28aln-PdAcNuKAXdrtzvslho2Co6GypChxLMKPpc,10618
573
592
  keras_hub/src/utils/transformers/convert_t5gemma.py,sha256=DPOwd61UhjspKuCsk3_EaNvSADGP_f8KLcZARHYVk5Y,9490
574
593
  keras_hub/src/utils/transformers/convert_vit.py,sha256=YAmXh519ecSgEO5B4g-aEQg1Bb_6ifFafLMqDTfLn_c,5259
575
- keras_hub/src/utils/transformers/preset_loader.py,sha256=JZn5mfKnVTN5aAvdZ6GWbS_CK3wP42iDkEJsmA58BVw,4925
594
+ keras_hub/src/utils/transformers/preset_loader.py,sha256=_NX7T6ecEQ8I01FkaZApJf-u8JUymNplixR8vcriRlQ,5075
576
595
  keras_hub/src/utils/transformers/safetensor_utils.py,sha256=CYUHyA4y-B61r7NDnCsFb4t_UmSwZ1k9L-8gzEd6KRg,3339
577
596
  keras_hub/src/utils/transformers/export/gemma.py,sha256=xX_vfQwvFZ_-lQX4kgMNOGKL7fL_1yk7QyGYV2Qyly4,4699
578
597
  keras_hub/src/utils/transformers/export/hf_exporter.py,sha256=Qk52c6LIA2eMHUNY9Vy4STJSpnhLMdJ_t-3ljqhSr4k,5081
579
- keras_hub/tokenizers/__init__.py,sha256=YEr_cwyX6MACxQOgyRwETilOFYBXpQLNXH22ZdSSv3o,4450
598
+ keras_hub/tokenizers/__init__.py,sha256=kyFWYm4mb--U4xYU-2Gb1COM8xEFWNK6LcKxr8h9Ivc,4561
580
599
  keras_hub/utils/__init__.py,sha256=jXPqVGBpJr_PpYmqD8aDG-fRMlxH-ulqCR2SZMn288Y,646
581
- keras_hub_nightly-0.23.0.dev202509190415.dist-info/METADATA,sha256=r_hK_l4RrMqkzmqufjPnhoSiOp7v7B6TP0pduHAo7Rs,7395
582
- keras_hub_nightly-0.23.0.dev202509190415.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
583
- keras_hub_nightly-0.23.0.dev202509190415.dist-info/top_level.txt,sha256=N4J6piIWBKa38A4uV-CnIopnOEf8mHAbkNXafXm_CuA,10
584
- keras_hub_nightly-0.23.0.dev202509190415.dist-info/RECORD,,
600
+ keras_hub_nightly-0.23.0.dev202509280419.dist-info/METADATA,sha256=hNCnpYrO1qf6MHV8MDBOXPwgAB4D7yqDsVvuWGuJ8Ww,7395
601
+ keras_hub_nightly-0.23.0.dev202509280419.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
602
+ keras_hub_nightly-0.23.0.dev202509280419.dist-info/top_level.txt,sha256=N4J6piIWBKa38A4uV-CnIopnOEf8mHAbkNXafXm_CuA,10
603
+ keras_hub_nightly-0.23.0.dev202509280419.dist-info/RECORD,,