keras-hub-nightly 0.23.0.dev202510150419__py3-none-any.whl → 0.24.0.dev202511080419__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/layers/__init__.py +3 -0
- keras_hub/models/__init__.py +27 -0
- keras_hub/src/layers/modeling/reversible_embedding.py +6 -0
- keras_hub/src/models/causal_lm.py +5 -0
- keras_hub/src/models/depth_anything/depth_anything_presets.py +38 -1
- keras_hub/src/models/dinov2/dinov2_layers.py +3 -1
- keras_hub/src/models/dinov3/__init__.py +5 -0
- keras_hub/src/models/dinov3/dinov3_backbone.py +263 -0
- keras_hub/src/models/dinov3/dinov3_image_converter.py +8 -0
- keras_hub/src/models/dinov3/dinov3_layers.py +1013 -0
- keras_hub/src/models/dinov3/dinov3_presets.py +4 -0
- keras_hub/src/models/gemma/gemma_presets.py +22 -0
- keras_hub/src/models/gemma3/gemma3_presets.py +39 -0
- keras_hub/src/models/image_to_image.py +5 -0
- keras_hub/src/models/inpaint.py +5 -0
- keras_hub/src/models/mobilenetv5/__init__.py +9 -0
- keras_hub/src/models/mobilenetv5/mobilenetv5_presets.py +15 -0
- keras_hub/src/models/parseq/__init__.py +5 -0
- keras_hub/src/models/parseq/parseq_presets.py +15 -0
- keras_hub/src/models/siglip/siglip_presets.py +15 -0
- keras_hub/src/models/smollm3/smollm3_backbone.py +211 -0
- keras_hub/src/models/smollm3/smollm3_causal_lm.py +310 -0
- keras_hub/src/models/smollm3/smollm3_causal_lm_preprocessor.py +84 -0
- keras_hub/src/models/smollm3/smollm3_layers.py +757 -0
- keras_hub/src/models/smollm3/smollm3_tokenizer.py +60 -0
- keras_hub/src/models/smollm3/smollm3_utils.py +56 -0
- keras_hub/src/models/text_to_image.py +5 -0
- keras_hub/src/utils/tensor_utils.py +3 -1
- keras_hub/src/utils/transformers/convert_dinov3.py +106 -0
- keras_hub/src/utils/transformers/convert_smollm3.py +139 -0
- keras_hub/src/utils/transformers/preset_loader.py +6 -0
- keras_hub/src/version.py +1 -1
- keras_hub/tokenizers/__init__.py +6 -0
- {keras_hub_nightly-0.23.0.dev202510150419.dist-info → keras_hub_nightly-0.24.0.dev202511080419.dist-info}/METADATA +1 -1
- {keras_hub_nightly-0.23.0.dev202510150419.dist-info → keras_hub_nightly-0.24.0.dev202511080419.dist-info}/RECORD +37 -22
- {keras_hub_nightly-0.23.0.dev202510150419.dist-info → keras_hub_nightly-0.24.0.dev202511080419.dist-info}/WHEEL +0 -0
- {keras_hub_nightly-0.23.0.dev202510150419.dist-info → keras_hub_nightly-0.24.0.dev202511080419.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from keras_hub.src.api_export import keras_hub_export
|
|
2
|
+
from keras_hub.src.models.smollm3.smollm3_backbone import SmolLM3Backbone
|
|
3
|
+
from keras_hub.src.tokenizers.byte_pair_tokenizer import BytePairTokenizer
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@keras_hub_export(
|
|
7
|
+
[
|
|
8
|
+
"keras_hub.tokenizers.SmolLM3Tokenizer",
|
|
9
|
+
"keras_hub.tokenizers.SmolLMTokenizer",
|
|
10
|
+
"keras_hub.models.SmolLM3Tokenizer",
|
|
11
|
+
"keras_hub.models.SmolLMTokenizer",
|
|
12
|
+
]
|
|
13
|
+
)
|
|
14
|
+
class SmolLM3Tokenizer(BytePairTokenizer):
|
|
15
|
+
"""Tokenizer for SmolLM3 models.
|
|
16
|
+
|
|
17
|
+
This tokenizer implements byte-pair encoding (BPE) for SmolLM3 models,
|
|
18
|
+
handling special tokens like BOS (beginning of sequence) and EOS (end of
|
|
19
|
+
sequence).
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
vocabulary: Dictionary mapping tokens to token IDs, or path to
|
|
23
|
+
vocabulary file.
|
|
24
|
+
merges: List of BPE merges, or path to merges file.
|
|
25
|
+
bos_token: Beginning of sequence token. Defaults to None.
|
|
26
|
+
eos_token: End of sequence token. Defaults to "<|endoftext|>".
|
|
27
|
+
misc_special_tokens: Set of additional special tokens. Defaults to
|
|
28
|
+
empty set.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
backbone_cls = SmolLM3Backbone
|
|
32
|
+
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
35
|
+
vocabulary=None,
|
|
36
|
+
merges=None,
|
|
37
|
+
**kwargs,
|
|
38
|
+
):
|
|
39
|
+
# Add EOS token
|
|
40
|
+
eos_token = "<|end_of_text|>"
|
|
41
|
+
self._add_special_token(eos_token, "end_token")
|
|
42
|
+
|
|
43
|
+
bos_token = "<|begin_of_text|>"
|
|
44
|
+
self._add_special_token(bos_token, "bos_token")
|
|
45
|
+
|
|
46
|
+
start_think_token = "<think>"
|
|
47
|
+
self._add_special_token(start_think_token, "start_think_token")
|
|
48
|
+
|
|
49
|
+
end_think_token = "</think>"
|
|
50
|
+
self._add_special_token(end_think_token, "end_think_token")
|
|
51
|
+
|
|
52
|
+
self.start_token_id = None
|
|
53
|
+
self.start_token = None
|
|
54
|
+
self.pad_token_id = 0
|
|
55
|
+
|
|
56
|
+
super().__init__(
|
|
57
|
+
vocabulary=vocabulary,
|
|
58
|
+
merges=merges,
|
|
59
|
+
**kwargs,
|
|
60
|
+
)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from keras import ops
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def rotate_half(x):
|
|
5
|
+
x1 = x[..., : ops.shape(x)[-1] // 2]
|
|
6
|
+
x2 = x[..., ops.shape(x)[-1] // 2 :]
|
|
7
|
+
return ops.concatenate((-x2, x1), axis=-1)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def apply_rotary_pos_emb(q, k, cos, sin, expansion_axis=1):
|
|
11
|
+
cos = ops.expand_dims(cos, expansion_axis)
|
|
12
|
+
sin = ops.expand_dims(sin, expansion_axis)
|
|
13
|
+
q_embed = (q * cos) + (rotate_half(q) * sin)
|
|
14
|
+
k_embed = (k * cos) + (rotate_half(k) * sin)
|
|
15
|
+
return q_embed, k_embed
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def apply_rotary_pos_single(tensor, cos, sin, expansion_axis=1):
|
|
19
|
+
cos = ops.expand_dims(cos, expansion_axis)
|
|
20
|
+
sin = ops.expand_dims(sin, expansion_axis)
|
|
21
|
+
tensor_embed = (tensor * cos) + (rotate_half(tensor) * sin)
|
|
22
|
+
return tensor_embed
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def repeat_kv(hidden_states, n_rep):
|
|
26
|
+
batch, num_key_value_heads, slen, head_dim = ops.shape(hidden_states)
|
|
27
|
+
if n_rep == 1:
|
|
28
|
+
return hidden_states
|
|
29
|
+
hidden_states = ops.expand_dims(hidden_states, axis=2)
|
|
30
|
+
target_shape = (batch, num_key_value_heads, n_rep, slen, head_dim)
|
|
31
|
+
hidden_states = ops.broadcast_to(hidden_states, target_shape)
|
|
32
|
+
return ops.reshape(
|
|
33
|
+
hidden_states, [batch, num_key_value_heads * n_rep, slen, head_dim]
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def rope_init(rope_theta, partial_rotary_factor, head_dim):
|
|
38
|
+
"""Initialize RoPE (Rotary Position Embedding) parameters.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
rope_theta: float. The theta value for RoPE.
|
|
42
|
+
partial_rotary_factor: float. The factor for partial rotary embedding.
|
|
43
|
+
head_dim: int. The dimension of each attention head.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
A tuple of (inv_freq, attention_scaling) where inv_freq is the inverse
|
|
47
|
+
frequency tensor and attention_scaling is the scaling factor.
|
|
48
|
+
"""
|
|
49
|
+
base = rope_theta
|
|
50
|
+
dim = int(head_dim * partial_rotary_factor)
|
|
51
|
+
|
|
52
|
+
inv_freq = 1.0 / (
|
|
53
|
+
ops.power(base, ops.arange(0, dim, 2, dtype="float32") / dim)
|
|
54
|
+
)
|
|
55
|
+
attention_scaling = 1.0
|
|
56
|
+
return inv_freq, attention_scaling
|
|
@@ -345,3 +345,8 @@ class TextToImage(Task):
|
|
|
345
345
|
# Text-to-image.
|
|
346
346
|
outputs = [generate(x) for x in inputs]
|
|
347
347
|
return self._normalize_generate_outputs(outputs, input_is_scalar)
|
|
348
|
+
|
|
349
|
+
def _post_quantize(self, mode, **kwargs):
|
|
350
|
+
super()._post_quantize(mode, **kwargs)
|
|
351
|
+
# Reset the compiled generate function.
|
|
352
|
+
self.generate_function = None
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
from keras_hub.src.models.dinov3.dinov3_backbone import DINOV3Backbone
|
|
4
|
+
|
|
5
|
+
backbone_cls = DINOV3Backbone
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def convert_backbone_config(transformers_config):
|
|
9
|
+
image_size = transformers_config["image_size"]
|
|
10
|
+
return {
|
|
11
|
+
"patch_size": transformers_config["patch_size"],
|
|
12
|
+
"num_layers": transformers_config["num_hidden_layers"],
|
|
13
|
+
"hidden_dim": transformers_config["hidden_size"],
|
|
14
|
+
"num_heads": transformers_config["num_attention_heads"],
|
|
15
|
+
"intermediate_dim": transformers_config["intermediate_size"],
|
|
16
|
+
"layer_scale_init_value": transformers_config["layerscale_value"],
|
|
17
|
+
"num_register_tokens": transformers_config["num_register_tokens"],
|
|
18
|
+
"use_mask_token": True,
|
|
19
|
+
"hidden_activation": transformers_config["hidden_act"],
|
|
20
|
+
"use_gated_mlp": transformers_config["use_gated_mlp"],
|
|
21
|
+
"use_query_bias": transformers_config["query_bias"],
|
|
22
|
+
"use_key_bias": transformers_config["key_bias"],
|
|
23
|
+
"use_value_bias": transformers_config["value_bias"],
|
|
24
|
+
"use_proj_bias": transformers_config["proj_bias"],
|
|
25
|
+
"use_mlp_bias": transformers_config["mlp_bias"],
|
|
26
|
+
"attention_dropout": transformers_config["attention_dropout"],
|
|
27
|
+
"drop_path_rate": transformers_config["drop_path_rate"],
|
|
28
|
+
"layer_norm_eps": transformers_config["layer_norm_eps"],
|
|
29
|
+
"image_shape": (image_size, image_size, 3),
|
|
30
|
+
"rope_theta": transformers_config["rope_theta"],
|
|
31
|
+
"apply_layernorm": False,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def convert_weights(backbone, loader, transformers_config):
|
|
36
|
+
if not isinstance(backbone, DINOV3Backbone):
|
|
37
|
+
raise ValueError(
|
|
38
|
+
"The provided backbone must be an instance of DINOV3Backbone. "
|
|
39
|
+
f"Received: {type(backbone)}"
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
def port_ln(keras_variable, weight_key):
|
|
43
|
+
loader.port_weight(keras_variable.gamma, f"{weight_key}.weight")
|
|
44
|
+
loader.port_weight(keras_variable.beta, f"{weight_key}.bias")
|
|
45
|
+
|
|
46
|
+
def port_dense(keras_variable, weight_key):
|
|
47
|
+
loader.port_weight(
|
|
48
|
+
keras_variable.kernel,
|
|
49
|
+
f"{weight_key}.weight",
|
|
50
|
+
hook_fn=lambda x, _: x.T,
|
|
51
|
+
)
|
|
52
|
+
if keras_variable.bias is not None:
|
|
53
|
+
loader.port_weight(keras_variable.bias, f"{weight_key}.bias")
|
|
54
|
+
|
|
55
|
+
# Embedding.
|
|
56
|
+
loader.port_weight(
|
|
57
|
+
keras_variable=backbone.embeddings.cls_token,
|
|
58
|
+
hf_weight_key="embeddings.cls_token",
|
|
59
|
+
)
|
|
60
|
+
if backbone.use_mask_token:
|
|
61
|
+
loader.port_weight(
|
|
62
|
+
keras_variable=backbone.embeddings.mask_token,
|
|
63
|
+
hf_weight_key="embeddings.mask_token",
|
|
64
|
+
)
|
|
65
|
+
if backbone.num_register_tokens > 0:
|
|
66
|
+
loader.port_weight(
|
|
67
|
+
keras_variable=backbone.embeddings.register_tokens,
|
|
68
|
+
hf_weight_key="embeddings.register_tokens",
|
|
69
|
+
)
|
|
70
|
+
loader.port_weight(
|
|
71
|
+
keras_variable=backbone.embeddings.patch_embeddings.projection.kernel,
|
|
72
|
+
hf_weight_key="embeddings.patch_embeddings.weight",
|
|
73
|
+
hook_fn=lambda x, _: np.transpose(x, (2, 3, 1, 0)),
|
|
74
|
+
)
|
|
75
|
+
loader.port_weight(
|
|
76
|
+
keras_variable=backbone.embeddings.patch_embeddings.projection.bias,
|
|
77
|
+
hf_weight_key="embeddings.patch_embeddings.bias",
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
# Encoder.
|
|
81
|
+
for i, layer in enumerate(backbone.encoder.layers):
|
|
82
|
+
prefix = f"layer.{i}"
|
|
83
|
+
port_ln(layer.norm1, f"{prefix}.norm1")
|
|
84
|
+
port_dense(layer.attention.query_dense, f"{prefix}.attention.q_proj")
|
|
85
|
+
port_dense(layer.attention.key_dense, f"{prefix}.attention.k_proj")
|
|
86
|
+
port_dense(layer.attention.value_dense, f"{prefix}.attention.v_proj")
|
|
87
|
+
port_dense(layer.attention.output_dense, f"{prefix}.attention.o_proj")
|
|
88
|
+
|
|
89
|
+
loader.port_weight(
|
|
90
|
+
keras_variable=layer.layer_scale1.lambda1,
|
|
91
|
+
hf_weight_key=f"{prefix}.layer_scale1.lambda1",
|
|
92
|
+
)
|
|
93
|
+
port_ln(layer.norm2, f"{prefix}.norm2")
|
|
94
|
+
if backbone.use_gated_mlp:
|
|
95
|
+
port_dense(layer.mlp.gate_proj, f"{prefix}.mlp.gate_proj")
|
|
96
|
+
port_dense(layer.mlp.up_proj, f"{prefix}.mlp.up_proj")
|
|
97
|
+
port_dense(layer.mlp.down_proj, f"{prefix}.mlp.down_proj")
|
|
98
|
+
else:
|
|
99
|
+
port_dense(layer.mlp.up_proj, f"{prefix}.mlp.up_proj")
|
|
100
|
+
port_dense(layer.mlp.down_proj, f"{prefix}.mlp.down_proj")
|
|
101
|
+
loader.port_weight(
|
|
102
|
+
keras_variable=layer.layer_scale2.lambda1,
|
|
103
|
+
hf_weight_key=f"{prefix}.layer_scale2.lambda1",
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
port_ln(backbone.layernorm, "norm")
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
from keras_hub.src.models.smollm3.smollm3_backbone import SmolLM3Backbone
|
|
4
|
+
from keras_hub.src.utils.preset_utils import load_json
|
|
5
|
+
|
|
6
|
+
backbone_cls = SmolLM3Backbone
|
|
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
|
+
"num_layers": transformers_config["num_hidden_layers"],
|
|
14
|
+
"num_attention_heads": transformers_config["num_attention_heads"],
|
|
15
|
+
"num_key_value_heads": transformers_config["num_key_value_heads"],
|
|
16
|
+
"intermediate_dim": transformers_config["intermediate_size"],
|
|
17
|
+
"layer_norm_epsilon": transformers_config[
|
|
18
|
+
"rms_norm_eps"
|
|
19
|
+
], # Using rms_norm_eps as layer_norm_epsilon
|
|
20
|
+
"max_position_embeddings": transformers_config[
|
|
21
|
+
"max_position_embeddings"
|
|
22
|
+
],
|
|
23
|
+
"rope_theta": transformers_config["rope_theta"],
|
|
24
|
+
# partial_rotary_factor is not explicitly in config.json
|
|
25
|
+
# but is inherited from the default value in the
|
|
26
|
+
# `_compute_default_rope_parameters()` function
|
|
27
|
+
"partial_rotary_factor": 1.0,
|
|
28
|
+
"attention_bias": transformers_config["attention_bias"],
|
|
29
|
+
"attention_dropout": transformers_config["attention_dropout"],
|
|
30
|
+
# Despite the name, no_rope_layers: 1 = HAS RoPE, 0 = NO RoPE
|
|
31
|
+
"rope_layer_enabled_list": [
|
|
32
|
+
bool(x) for x in transformers_config["no_rope_layers"]
|
|
33
|
+
],
|
|
34
|
+
"layer_types": transformers_config["layer_types"],
|
|
35
|
+
"mlp_bias": transformers_config["mlp_bias"],
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def convert_weights(backbone, loader, transformers_config):
|
|
40
|
+
loader.port_weight(
|
|
41
|
+
keras_variable=backbone.get_layer("token_embedding").embeddings,
|
|
42
|
+
hf_weight_key="model.embed_tokens.weight",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
def transpose_and_reshape(x, shape):
|
|
46
|
+
return np.reshape(np.transpose(x), shape)
|
|
47
|
+
|
|
48
|
+
for i in range(backbone.num_layers):
|
|
49
|
+
decoder_layer = backbone.get_layer(f"transformer_layer_{i}")
|
|
50
|
+
|
|
51
|
+
# Input layernorm
|
|
52
|
+
loader.port_weight(
|
|
53
|
+
keras_variable=decoder_layer.input_layernorm.scale,
|
|
54
|
+
hf_weight_key=f"model.layers.{i}.input_layernorm.weight",
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
# Attention layers
|
|
58
|
+
## Query
|
|
59
|
+
loader.port_weight(
|
|
60
|
+
keras_variable=decoder_layer.self_attn.q_proj.kernel,
|
|
61
|
+
hf_weight_key=f"model.layers.{i}.self_attn.q_proj.weight",
|
|
62
|
+
hook_fn=transpose_and_reshape,
|
|
63
|
+
)
|
|
64
|
+
## Key
|
|
65
|
+
loader.port_weight(
|
|
66
|
+
keras_variable=decoder_layer.self_attn.k_proj.kernel,
|
|
67
|
+
hf_weight_key=f"model.layers.{i}.self_attn.k_proj.weight",
|
|
68
|
+
hook_fn=transpose_and_reshape,
|
|
69
|
+
)
|
|
70
|
+
## Value
|
|
71
|
+
loader.port_weight(
|
|
72
|
+
keras_variable=decoder_layer.self_attn.v_proj.kernel,
|
|
73
|
+
hf_weight_key=f"model.layers.{i}.self_attn.v_proj.weight",
|
|
74
|
+
hook_fn=transpose_and_reshape,
|
|
75
|
+
)
|
|
76
|
+
## Output
|
|
77
|
+
loader.port_weight(
|
|
78
|
+
keras_variable=decoder_layer.self_attn.o_proj.kernel,
|
|
79
|
+
hf_weight_key=f"model.layers.{i}.self_attn.o_proj.weight",
|
|
80
|
+
hook_fn=transpose_and_reshape,
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
# MLP layers
|
|
84
|
+
loader.port_weight(
|
|
85
|
+
keras_variable=decoder_layer.mlp.up_proj.kernel,
|
|
86
|
+
hf_weight_key=f"model.layers.{i}.mlp.up_proj.weight",
|
|
87
|
+
# rearrange_patterns="b a -> a b",
|
|
88
|
+
hook_fn=lambda hf_tensor, _: np.transpose(hf_tensor, axes=(1, 0)),
|
|
89
|
+
)
|
|
90
|
+
loader.port_weight(
|
|
91
|
+
keras_variable=decoder_layer.mlp.down_proj.kernel,
|
|
92
|
+
hf_weight_key=f"model.layers.{i}.mlp.down_proj.weight",
|
|
93
|
+
# rearrange_patterns="b a -> a b",
|
|
94
|
+
hook_fn=lambda hf_tensor, _: np.transpose(hf_tensor, axes=(1, 0)),
|
|
95
|
+
)
|
|
96
|
+
loader.port_weight(
|
|
97
|
+
keras_variable=decoder_layer.mlp.gate_proj.kernel,
|
|
98
|
+
hf_weight_key=f"model.layers.{i}.mlp.gate_proj.weight",
|
|
99
|
+
# rearrange_patterns="b a -> a b",
|
|
100
|
+
hook_fn=lambda hf_tensor, _: np.transpose(hf_tensor, axes=(1, 0)),
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
# Feedforward layernorm
|
|
104
|
+
loader.port_weight(
|
|
105
|
+
keras_variable=decoder_layer.post_attention_layernorm.scale,
|
|
106
|
+
hf_weight_key=f"model.layers.{i}.post_attention_layernorm.weight",
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
# Final normalization layer
|
|
110
|
+
loader.port_weight(
|
|
111
|
+
keras_variable=backbone.get_layer("sequence_output_layernorm").scale,
|
|
112
|
+
hf_weight_key="model.norm.weight",
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
backbone.training = False
|
|
116
|
+
|
|
117
|
+
return backbone
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def convert_tokenizer(cls, preset, **kwargs):
|
|
121
|
+
tokenizer_config = load_json(preset, "tokenizer.json")
|
|
122
|
+
vocab = tokenizer_config["model"]["vocab"]
|
|
123
|
+
merges = tokenizer_config["model"]["merges"]
|
|
124
|
+
merges = [" ".join(item) for item in merges]
|
|
125
|
+
|
|
126
|
+
# Load all special tokens with the exception of "reserved" ones.
|
|
127
|
+
special_tokens = set()
|
|
128
|
+
for token in tokenizer_config["added_tokens"]:
|
|
129
|
+
if not token["content"].startswith("<|reserved_special_token_"):
|
|
130
|
+
vocab[token["content"]] = token["id"]
|
|
131
|
+
special_tokens.add(token["content"])
|
|
132
|
+
|
|
133
|
+
kwargs.update(
|
|
134
|
+
{
|
|
135
|
+
"unsplittable_tokens": list(special_tokens),
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
return cls(vocabulary=vocab, merges=merges, **kwargs)
|
|
@@ -8,6 +8,7 @@ from keras_hub.src.utils.transformers import convert_bart
|
|
|
8
8
|
from keras_hub.src.utils.transformers import convert_bert
|
|
9
9
|
from keras_hub.src.utils.transformers import convert_deit
|
|
10
10
|
from keras_hub.src.utils.transformers import convert_dinov2
|
|
11
|
+
from keras_hub.src.utils.transformers import convert_dinov3
|
|
11
12
|
from keras_hub.src.utils.transformers import convert_distilbert
|
|
12
13
|
from keras_hub.src.utils.transformers import convert_esm
|
|
13
14
|
from keras_hub.src.utils.transformers import convert_gemma
|
|
@@ -20,6 +21,7 @@ from keras_hub.src.utils.transformers import convert_qwen
|
|
|
20
21
|
from keras_hub.src.utils.transformers import convert_qwen3
|
|
21
22
|
from keras_hub.src.utils.transformers import convert_qwen3_moe
|
|
22
23
|
from keras_hub.src.utils.transformers import convert_qwen_moe
|
|
24
|
+
from keras_hub.src.utils.transformers import convert_smollm3
|
|
23
25
|
from keras_hub.src.utils.transformers import convert_t5gemma
|
|
24
26
|
from keras_hub.src.utils.transformers import convert_vit
|
|
25
27
|
from keras_hub.src.utils.transformers.safetensor_utils import SafetensorLoader
|
|
@@ -41,6 +43,8 @@ class TransformersPresetLoader(PresetLoader):
|
|
|
41
43
|
self.converter = convert_distilbert
|
|
42
44
|
elif model_type in ("dinov2", "dinov2_with_registers"):
|
|
43
45
|
self.converter = convert_dinov2
|
|
46
|
+
elif model_type == "dinov3_vit":
|
|
47
|
+
self.converter = convert_dinov3
|
|
44
48
|
elif model_type == "esm":
|
|
45
49
|
self.converter = convert_esm
|
|
46
50
|
elif model_type in ("gemma", "gemma2"):
|
|
@@ -66,6 +70,8 @@ class TransformersPresetLoader(PresetLoader):
|
|
|
66
70
|
self.converter = convert_qwen3_moe
|
|
67
71
|
elif model_type == "qwen3":
|
|
68
72
|
self.converter = convert_qwen3
|
|
73
|
+
elif model_type == "smollm3":
|
|
74
|
+
self.converter = convert_smollm3
|
|
69
75
|
elif model_type == "t5gemma":
|
|
70
76
|
self.converter = convert_t5gemma
|
|
71
77
|
else:
|
keras_hub/src/version.py
CHANGED
keras_hub/tokenizers/__init__.py
CHANGED
|
@@ -93,6 +93,12 @@ from keras_hub.src.models.roformer_v2.roformer_v2_tokenizer import (
|
|
|
93
93
|
from keras_hub.src.models.siglip.siglip_tokenizer import (
|
|
94
94
|
SigLIPTokenizer as SigLIPTokenizer,
|
|
95
95
|
)
|
|
96
|
+
from keras_hub.src.models.smollm3.smollm3_tokenizer import (
|
|
97
|
+
SmolLM3Tokenizer as SmolLM3Tokenizer,
|
|
98
|
+
)
|
|
99
|
+
from keras_hub.src.models.smollm3.smollm3_tokenizer import (
|
|
100
|
+
SmolLM3Tokenizer as SmolLMTokenizer,
|
|
101
|
+
)
|
|
96
102
|
from keras_hub.src.models.t5.t5_tokenizer import T5Tokenizer as T5Tokenizer
|
|
97
103
|
from keras_hub.src.models.t5gemma.t5gemma_tokenizer import (
|
|
98
104
|
T5GemmaTokenizer as T5GemmaTokenizer,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
keras_hub/__init__.py,sha256=bJbUZkqwhZvTb1Tqx1fbkq6mzBYiEyq-Hin3oQIkhdE,558
|
|
2
|
-
keras_hub/layers/__init__.py,sha256=
|
|
2
|
+
keras_hub/layers/__init__.py,sha256=hY5hZX5oOxRTFxfPe2hGhrHWJwF1kB7QiwITSS4Xp2A,6061
|
|
3
3
|
keras_hub/metrics/__init__.py,sha256=KYalsMPBnfwim9BdGHFfJ5WxUKFXOQ1QoKIMT_0lwlM,439
|
|
4
|
-
keras_hub/models/__init__.py,sha256=
|
|
4
|
+
keras_hub/models/__init__.py,sha256=XGYkwfBVZiPw5ZjSV5S_n3FnkPf06yYNzxZjXMhiX70,32166
|
|
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=
|
|
8
|
+
keras_hub/src/version.py,sha256=2MZs2VoTZ2fpUxnyzQ5IyB-9fpBkude4IPhTHxT_H_4,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
|
|
@@ -16,7 +16,7 @@ keras_hub/src/layers/modeling/f_net_encoder.py,sha256=zkVeO5Nk_kBZCUGq2LeDGmPEIM
|
|
|
16
16
|
keras_hub/src/layers/modeling/masked_lm_head.py,sha256=no6XQb76KB2cUiksYC0MSdyeDOK7pn8MY6cmdCDxpKs,9015
|
|
17
17
|
keras_hub/src/layers/modeling/non_max_supression.py,sha256=yAkAH1CCj_tYXgQTav39IRr_Uxn8hmzJgIxqbYQyZY8,22565
|
|
18
18
|
keras_hub/src/layers/modeling/position_embedding.py,sha256=vqmmUbMU-41Ns6qwR_4N1IvVsV0arGlkiTD7D7NMS2s,4562
|
|
19
|
-
keras_hub/src/layers/modeling/reversible_embedding.py,sha256=
|
|
19
|
+
keras_hub/src/layers/modeling/reversible_embedding.py,sha256=PVZ3G-2pIYp7fU4d6GAB9OpMUPcNGRye0hg_7XG2QBY,11096
|
|
20
20
|
keras_hub/src/layers/modeling/rms_normalization.py,sha256=Ylnc9vkDw1A_ZqiKpQ09jVTAGumS5rspjdQOkH-mxf4,1084
|
|
21
21
|
keras_hub/src/layers/modeling/rotary_embedding.py,sha256=uKcEyidierqdEs67QYPMQrJ1u0gxqJYT22_YGnhkQ-I,6546
|
|
22
22
|
keras_hub/src/layers/modeling/sine_position_encoding.py,sha256=aLoadvQW1eeivac8gzymP740NXppblZ2C_OlErLMfN4,4063
|
|
@@ -44,7 +44,7 @@ keras_hub/src/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
44
44
|
keras_hub/src/models/audio_to_text.py,sha256=XoOjXtKBX6K1fz-zOXcdVo3FpjuxCMnJZh2LQcYXb_0,2726
|
|
45
45
|
keras_hub/src/models/audio_to_text_preprocessor.py,sha256=GS-WWyJ6aSsPRxi_0bxvxA00h2mT2FEwSdAoQXAUYVI,3249
|
|
46
46
|
keras_hub/src/models/backbone.py,sha256=BdqPsne7lIITIxn6jY6AN4vZ-Rc9VnpqTxvVNR3CS7M,12210
|
|
47
|
-
keras_hub/src/models/causal_lm.py,sha256=
|
|
47
|
+
keras_hub/src/models/causal_lm.py,sha256=x86PTAzoBpAdJyenPRNNBAkazUjcRLr4wb2hMs5SrQ0,18344
|
|
48
48
|
keras_hub/src/models/causal_lm_preprocessor.py,sha256=nxl-sfmCfkfl6JmVRASa878QbaZUgWSA6Jdu48x4-dY,7155
|
|
49
49
|
keras_hub/src/models/depth_estimator.py,sha256=JR7wtunOPrfEoDkLspoZnL2ItWhZFDeAxxw2vue5QLs,8992
|
|
50
50
|
keras_hub/src/models/depth_estimator_preprocessor.py,sha256=2iE8NAUyiD2AvjZwNoXKUaOUogcE1fRzTNXLQ75GZpQ,2822
|
|
@@ -53,8 +53,8 @@ keras_hub/src/models/image_classifier.py,sha256=yt6cjhPfqs8A_eWXBsXdXFzn-aRgH2rV
|
|
|
53
53
|
keras_hub/src/models/image_classifier_preprocessor.py,sha256=Bf7jSqHB1hX2ZWoWQS4GcXNOY_EjeoJi-_vtzCAqw4o,2690
|
|
54
54
|
keras_hub/src/models/image_segmenter.py,sha256=C1bzIO59pG58iist5GLn_qnlotDpcAVxPV_8a68BkAc,2876
|
|
55
55
|
keras_hub/src/models/image_segmenter_preprocessor.py,sha256=d7I2Hk0SKWyKpjRS6WYccmh_CYQBpWoj0JF5RRrU6rw,3748
|
|
56
|
-
keras_hub/src/models/image_to_image.py,sha256=
|
|
57
|
-
keras_hub/src/models/inpaint.py,sha256=
|
|
56
|
+
keras_hub/src/models/image_to_image.py,sha256=nblRd-16n5_JxKIH6IJU7bHTFRGxyCpKUilg6VjWuek,16933
|
|
57
|
+
keras_hub/src/models/inpaint.py,sha256=oqdj0Q9dNG54g6sNQ5foto8saPd5Sx8kYZuHCZPBqrY,20995
|
|
58
58
|
keras_hub/src/models/masked_lm.py,sha256=uXO_dE_hILlOC9jNr6oK6IHi9IGUqLyNGvr6nMt8Rk0,3576
|
|
59
59
|
keras_hub/src/models/masked_lm_preprocessor.py,sha256=g8vrnyYwqdnSw5xppROM1Gzo_jmMWKYZoQCsKdfrFKk,5656
|
|
60
60
|
keras_hub/src/models/object_detector.py,sha256=oAK42fFBKuN0G_WM-DhygFkgQ0KsEwU_ZiU4umHywqc,3757
|
|
@@ -65,7 +65,7 @@ keras_hub/src/models/seq_2_seq_lm_preprocessor.py,sha256=DJmm4VTt8AdLtq1k9YKl_VR
|
|
|
65
65
|
keras_hub/src/models/task.py,sha256=e9zK2zHgeOkjNACcCmAf-lGuEGF_eRoP_lKlirdIXuk,14817
|
|
66
66
|
keras_hub/src/models/text_classifier.py,sha256=B6cTYDbDZW8vRvenXrLwgMMVIYMb7Pr14GvX8C_wclQ,4159
|
|
67
67
|
keras_hub/src/models/text_classifier_preprocessor.py,sha256=EoWp-GHnaLnAKTdAzDmC-soAV92ATF3QozdubdV2WXI,4722
|
|
68
|
-
keras_hub/src/models/text_to_image.py,sha256=
|
|
68
|
+
keras_hub/src/models/text_to_image.py,sha256=Y2JcTBLb_l6_nnzASOXDziqP91tCPFN6m9wv6dlSe00,13570
|
|
69
69
|
keras_hub/src/models/text_to_image_preprocessor.py,sha256=SKMxEABl5sy1QIA3irHTZKs7VgMdx9Cxy4IaxDU6faM,1211
|
|
70
70
|
keras_hub/src/models/albert/__init__.py,sha256=rR6q_-8FujB1FXp6r4KOI7xi4gFjtAhQwXjp-MIhiyg,257
|
|
71
71
|
keras_hub/src/models/albert/albert_backbone.py,sha256=4NQFo8lhv8rFiNIwQeZxxKxFwT3nKcCt36FUa6oPGok,10073
|
|
@@ -169,13 +169,18 @@ keras_hub/src/models/depth_anything/depth_anything_depth_estimator_preprocessor.
|
|
|
169
169
|
keras_hub/src/models/depth_anything/depth_anything_image_converter.py,sha256=Xutwc8IyklFilDcc4psNBwPGRDcFlzalWXsHvEz7rUc,395
|
|
170
170
|
keras_hub/src/models/depth_anything/depth_anything_layers.py,sha256=_43iEE7F8P7BL4xssjpPeFyhiDk4gGLu-wPxuqQ-nT8,27739
|
|
171
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=
|
|
172
|
+
keras_hub/src/models/depth_anything/depth_anything_presets.py,sha256=A3Afr06IRL02u-9EPNTTiGb6DgzjQavSwVmWHz0OoMc,1536
|
|
173
173
|
keras_hub/src/models/depth_anything/interpolate.py,sha256=qwrPGP6wA4jZ-XcSeulhkyxPDiMRxHlC92EqSd0H5Tk,2041
|
|
174
174
|
keras_hub/src/models/dinov2/__init__.py,sha256=qacZi82EfAloVND4gDLZjqgR5_yVdz_dc4mMKyCsjOA,257
|
|
175
175
|
keras_hub/src/models/dinov2/dinov2_backbone.py,sha256=QH3lzE1EnxTcOSii9KS1Qx3lq0XcZMsvElB7AL_ejZY,10672
|
|
176
176
|
keras_hub/src/models/dinov2/dinov2_image_converter.py,sha256=gfFROdYV5rOzo3kJFlRvRHYjek8z9YirKfrFwlVJO3g,342
|
|
177
|
-
keras_hub/src/models/dinov2/dinov2_layers.py,sha256=
|
|
177
|
+
keras_hub/src/models/dinov2/dinov2_layers.py,sha256=wo80Re043Gjly-XE-sT01QAYq3h793zhmU-Nb6SFN4g,33702
|
|
178
178
|
keras_hub/src/models/dinov2/dinov2_presets.py,sha256=ho493GPH98K4LH1E54UV2qZZ4h7Un9ylbBmMQjNoKh4,2937
|
|
179
|
+
keras_hub/src/models/dinov3/__init__.py,sha256=AI7vTZJBG6Ygb48o6pXtHzxKk0Rek3p7-HffD-Y48cc,257
|
|
180
|
+
keras_hub/src/models/dinov3/dinov3_backbone.py,sha256=WDHipJSG10seRzYG_hARifF52wqhj9enkhuZ6mgJmjw,10511
|
|
181
|
+
keras_hub/src/models/dinov3/dinov3_image_converter.py,sha256=_oHDcI2CoxjbSLxLfkK1zEPcf4Goy0S66igmrXt58cQ,342
|
|
182
|
+
keras_hub/src/models/dinov3/dinov3_layers.py,sha256=w5K2btblrgrULqzPQdbvtkyR5Px2UZkqcZQ7jq2K3Uk,37169
|
|
183
|
+
keras_hub/src/models/dinov3/dinov3_presets.py,sha256=AXXdrgrs9WBrsGlac0TgWV0DIPnvKdlxD3kUhbii1sk,114
|
|
179
184
|
keras_hub/src/models/distil_bert/__init__.py,sha256=3Z0w-Mt3aOR0u9RGzjHQ7B3J3qBF2pGjupDGQ9yyzoc,303
|
|
180
185
|
keras_hub/src/models/distil_bert/distil_bert_backbone.py,sha256=rnAf_GokB3wAeJwVZtgUKQO_bKJIa8RavhL_ykTJpNw,6440
|
|
181
186
|
keras_hub/src/models/distil_bert/distil_bert_masked_lm.py,sha256=axeZd5UcxFr3_Q8H4yG10CINh93wbcyjlPLauqe5N9E,4289
|
|
@@ -236,7 +241,7 @@ keras_hub/src/models/gemma/gemma_backbone.py,sha256=pAAVaVKB6nlA0PncVnFXvNgJV7Se
|
|
|
236
241
|
keras_hub/src/models/gemma/gemma_causal_lm.py,sha256=3OXaIXlrKqMIuUnBk-bUz-0SYFL-XkkQTWm8qRY2YII,16770
|
|
237
242
|
keras_hub/src/models/gemma/gemma_causal_lm_preprocessor.py,sha256=bpKkEurWIfa6Kp9s4pz84-sBDSA6ZFNHP8nXG1fFQrg,2912
|
|
238
243
|
keras_hub/src/models/gemma/gemma_decoder_block.py,sha256=f5UsRO-VNsKJfm_WHVJWK4UahhzYm3sKprJ8jjr-zm4,7628
|
|
239
|
-
keras_hub/src/models/gemma/gemma_presets.py,sha256=
|
|
244
|
+
keras_hub/src/models/gemma/gemma_presets.py,sha256=wAH7mjz9tbQqqdwajU2dilGytnWK1qc-aTIVLtjpTWg,8263
|
|
240
245
|
keras_hub/src/models/gemma/gemma_tokenizer.py,sha256=FhcyNL4lo63MqOhTQPFr07-u3BddL0fVM4TmOm8ku-I,2622
|
|
241
246
|
keras_hub/src/models/gemma/rms_normalization.py,sha256=fku-JEo2sNy-ytX7ySD1sRzdhRAPmYex_z8oFk1NiG8,833
|
|
242
247
|
keras_hub/src/models/gemma3/__init__.py,sha256=oPFadkdK5DRLD6sYx83iTetY5daWuSzmJilLjokHcbU,257
|
|
@@ -247,7 +252,7 @@ keras_hub/src/models/gemma3/gemma3_causal_lm_preprocessor.py,sha256=vjt4N-zr0Eb5
|
|
|
247
252
|
keras_hub/src/models/gemma3/gemma3_decoder_block.py,sha256=CYwYazqwakLNfhOLBl_8Q2TVZcMcOxMtiZtuVlk_hoo,11470
|
|
248
253
|
keras_hub/src/models/gemma3/gemma3_image_converter.py,sha256=czi5JrTyKiK0nFzvonviBIX8jjvLHqvGNA9RyheB31k,536
|
|
249
254
|
keras_hub/src/models/gemma3/gemma3_interleave_embeddings.py,sha256=CfYdudk5En9iU6vEnrcrEWIztloD1r8VzF2extqAhAM,4616
|
|
250
|
-
keras_hub/src/models/gemma3/gemma3_presets.py,sha256=
|
|
255
|
+
keras_hub/src/models/gemma3/gemma3_presets.py,sha256=1GZSwsGRA19RllhZPR-kFjH5y9A6308V3TYfqHAnXUw,7744
|
|
251
256
|
keras_hub/src/models/gemma3/gemma3_tokenizer.py,sha256=ZaBclFIwzJkSXDuZMBQLHUKV8RWEdZ_dsJMvMcc3qXw,3215
|
|
252
257
|
keras_hub/src/models/gemma3/gemma3_vision_encoder.py,sha256=7XI0oBjIfJItV5w90t5bWb3C2KzjhvDnIC7wjIq4Cns,20850
|
|
253
258
|
keras_hub/src/models/gemma3/rms_normalization.py,sha256=fku-JEo2sNy-ytX7ySD1sRzdhRAPmYex_z8oFk1NiG8,833
|
|
@@ -321,7 +326,7 @@ keras_hub/src/models/mobilenet/mobilenet_image_classifier_preprocessor.py,sha256
|
|
|
321
326
|
keras_hub/src/models/mobilenet/mobilenet_image_converter.py,sha256=a3Ka0UYYK5wHSOjf2oMHSgofRazTAeUfttklVefq14w,360
|
|
322
327
|
keras_hub/src/models/mobilenet/mobilenet_presets.py,sha256=hR_3xxI_PigE8UprXW4lAuKRa3LFGdidBaN8LklxwRQ,1895
|
|
323
328
|
keras_hub/src/models/mobilenet/util.py,sha256=S7j4UacmVIJ3fU8cymyAoK49eHcpWIKTOyUQiEjcbzQ,721
|
|
324
|
-
keras_hub/src/models/mobilenetv5/__init__.py,sha256=
|
|
329
|
+
keras_hub/src/models/mobilenetv5/__init__.py,sha256=UBySIjlMZeXRpef3FJMpA8w--XbPDcO-up-4zwYJQG0,305
|
|
325
330
|
keras_hub/src/models/mobilenetv5/mobilenetv5_attention.py,sha256=rH4cp1B5_r8g7gKvDdMvfEGfmMHUB2OMEbWQbX9yUMg,26499
|
|
326
331
|
keras_hub/src/models/mobilenetv5/mobilenetv5_backbone.py,sha256=y19FpVh0M3w9jSmP34E-GixdjMsU2cEJKrtjLcFfGZU,17167
|
|
327
332
|
keras_hub/src/models/mobilenetv5/mobilenetv5_blocks.py,sha256=aw2H-duaCkxGSHB-nKnG8nQhAPxNkmlPUn0FHDb_cTs,34026
|
|
@@ -330,6 +335,7 @@ keras_hub/src/models/mobilenetv5/mobilenetv5_image_classifier.py,sha256=BvL0yCla
|
|
|
330
335
|
keras_hub/src/models/mobilenetv5/mobilenetv5_image_classifier_preprocessor.py,sha256=4yhM71JqOzQWiCXTidWAMCNaaIO8QVq5vXl_129ylsI,602
|
|
331
336
|
keras_hub/src/models/mobilenetv5/mobilenetv5_image_converter.py,sha256=HroX3OOwajIz9CIqlcGf9K9MYUEQ86wifABy9ZGRql4,381
|
|
332
337
|
keras_hub/src/models/mobilenetv5/mobilenetv5_layers.py,sha256=wLyR_gTcqiNLUt86fhxhEbbhZH3YA9CbvMSPnA4vTvg,15889
|
|
338
|
+
keras_hub/src/models/mobilenetv5/mobilenetv5_presets.py,sha256=fkWhfnoXxalYFLCsnuT1_aMrP_A5txx8s41MgMVe_ro,481
|
|
333
339
|
keras_hub/src/models/mobilenetv5/mobilenetv5_utils.py,sha256=ij2Dfguotb6RGSXuX-MsxF8JBXBWLdSi0LfDOKGp2rk,4868
|
|
334
340
|
keras_hub/src/models/moonshine/__init__.py,sha256=WK_9Cy1dp5KplNAaTsaJbd-2DGLsiHQsIL5ZnXuCbDQ,275
|
|
335
341
|
keras_hub/src/models/moonshine/moonshine_audio_converter.py,sha256=FnvR7SP44uVOsA3g9azUhQjsVg809eJ5nqoJZQ-DAq0,11854
|
|
@@ -357,12 +363,13 @@ keras_hub/src/models/pali_gemma/pali_gemma_image_converter.py,sha256=5yM_jUtrFsW
|
|
|
357
363
|
keras_hub/src/models/pali_gemma/pali_gemma_presets.py,sha256=Q_zfHEjGTtXEiCwjoJc2g6HjmoNoLgSDRNfRvIsf0dA,12989
|
|
358
364
|
keras_hub/src/models/pali_gemma/pali_gemma_tokenizer.py,sha256=ljTiADHo0Ok88q-jVzwJIle2C8xcxnudLTsBLzIySaM,2415
|
|
359
365
|
keras_hub/src/models/pali_gemma/pali_gemma_vit.py,sha256=SbWanwCoONSwgiWQsc6lFdvhqKZ-zDW42XzQt8CNMtU,18311
|
|
360
|
-
keras_hub/src/models/parseq/__init__.py,sha256=
|
|
366
|
+
keras_hub/src/models/parseq/__init__.py,sha256=BedkGhH5vJ-sm0gxGi3xfDiS0JN-CkOvGGQUBeYFwV4,257
|
|
361
367
|
keras_hub/src/models/parseq/parseq_backbone.py,sha256=FX28p7VZerjoHwlyfrvht3Pibl9GlTczDxo1iXtO6cA,4767
|
|
362
368
|
keras_hub/src/models/parseq/parseq_causal_lm.py,sha256=fhxhXCOgrIfe5aFimWz_w31VOZj5nb6w9Mx0kuzm718,17187
|
|
363
369
|
keras_hub/src/models/parseq/parseq_causal_lm_preprocessor.py,sha256=2pVdqEepiSQf8Z01J1qKoTRbLeQGhWtomjKw1Gaxrhk,6057
|
|
364
370
|
keras_hub/src/models/parseq/parseq_decoder.py,sha256=R9yRlfwkk0q-HEchn5bW34qqTcEnCRDsD3Ru7ENi4F4,14442
|
|
365
371
|
keras_hub/src/models/parseq/parseq_image_converter.py,sha256=cEFXRICZQ5lEf3qpgmfSBMMiDZI7PC-0kO5wb-kLYx4,342
|
|
372
|
+
keras_hub/src/models/parseq/parseq_presets.py,sha256=DAZuTCWcWe_1kxI8edhlYQ9xcwHNCtlDg4cTjg5GY8M,405
|
|
366
373
|
keras_hub/src/models/parseq/parseq_tokenizer.py,sha256=SEbeYRxU7VzHuyTWKJK5hOhqq_DZqXvGALnG8MNCN3I,8164
|
|
367
374
|
keras_hub/src/models/phi3/__init__.py,sha256=zIbf1MU-ks91mEkjTRJAsk51N3BBnXDF2JM1vO-13PQ,245
|
|
368
375
|
keras_hub/src/models/phi3/phi3_attention.py,sha256=pojx23rG2NPqy0MRo_OspnxipJCZvexZ2V25xucimHY,9980
|
|
@@ -465,10 +472,16 @@ keras_hub/src/models/siglip/siglip_image_converter.py,sha256=yjYc0XOyL37WLlr-X6V
|
|
|
465
472
|
keras_hub/src/models/siglip/siglip_layers.py,sha256=c20n6v3cFsI-Im9GBVTknhj_IpX79I4a-fajBKRMzQA,19893
|
|
466
473
|
keras_hub/src/models/siglip/siglip_loss.py,sha256=n6zmOeL0o7Nwb5iaoEZfrxiAsQoqZ9yLIlaCJsAfTg4,1442
|
|
467
474
|
keras_hub/src/models/siglip/siglip_preprocessor.py,sha256=r1Ej7hVwr5BudFYTHkjW5yc3lk4OYZD1s3t32lKkuec,5660
|
|
468
|
-
keras_hub/src/models/siglip/siglip_presets.py,sha256=
|
|
475
|
+
keras_hub/src/models/siglip/siglip_presets.py,sha256=jtIQrNcq14othG1QgwBEfozEmoHdXXW270qylQEmA8E,13864
|
|
469
476
|
keras_hub/src/models/siglip/siglip_text_encoder.py,sha256=xOVvzyQHLX9ne30y4ussar99gNMXPXHYKlkbCX_On2Y,5380
|
|
470
477
|
keras_hub/src/models/siglip/siglip_tokenizer.py,sha256=j_67JbIHJDRk-CbiemG2dgAO6lp3_0_JdnfroZ90G18,2579
|
|
471
478
|
keras_hub/src/models/siglip/siglip_vision_encoder.py,sha256=CaNaFq5thBC3TUXXOf2qknk5vWsauM20ZoaDPYRnXcs,5927
|
|
479
|
+
keras_hub/src/models/smollm3/smollm3_backbone.py,sha256=9e8ydwy7X0stVEWgIJYt69vt6JYSCiYpM73w6oLxyoQ,7949
|
|
480
|
+
keras_hub/src/models/smollm3/smollm3_causal_lm.py,sha256=PWn2zPu0YS3uRvmjksmXKXpxehl8lvEHAXaO0u7nweM,12641
|
|
481
|
+
keras_hub/src/models/smollm3/smollm3_causal_lm_preprocessor.py,sha256=gbj7IhDbgA30AM80uG6BeI1yZmGd5yQ2VEaPWWyS9M4,3121
|
|
482
|
+
keras_hub/src/models/smollm3/smollm3_layers.py,sha256=lR33IynX-1G42L3hNzOBnnIx-INOzJguSQDAwIPaSIQ,26632
|
|
483
|
+
keras_hub/src/models/smollm3/smollm3_tokenizer.py,sha256=evOVM8pgZUkWLoXAwWiYRSNNFZ7KBv1WtFdLqpHdCQU,1877
|
|
484
|
+
keras_hub/src/models/smollm3/smollm3_utils.py,sha256=zAqtZTv1G--k-Dbjvk886OcmsuIxyYicRiUQXcpyud0,1904
|
|
472
485
|
keras_hub/src/models/stable_diffusion_3/__init__.py,sha256=ZKYQuaRObyhKq8GVAHmoRvlXp6FpU8ChvutVCHyXKuc,343
|
|
473
486
|
keras_hub/src/models/stable_diffusion_3/flow_match_euler_discrete_scheduler.py,sha256=1K_B3d3fNn50eY84OgxVHyIHHZhmlJY03b71pMSmE9s,3246
|
|
474
487
|
keras_hub/src/models/stable_diffusion_3/mmdit.py,sha256=emyDmtpJiFU_9crSDBC5CaXoZnM1Eti8uAQtwv2v8B0,42794
|
|
@@ -570,7 +583,7 @@ keras_hub/src/utils/openvino_utils.py,sha256=P1ZvedLv91LZD-UAgAo2dy6WC5305elh1qv
|
|
|
570
583
|
keras_hub/src/utils/pipeline_model.py,sha256=jgzB6NQPSl0KOu08N-TazfOnXnUJbZjH2EXXhx25Ftg,9084
|
|
571
584
|
keras_hub/src/utils/preset_utils.py,sha256=lyCg_PRcYH1Jy8lGKaO8sgpIbMrP-Ik66EbjGD4gizc,37677
|
|
572
585
|
keras_hub/src/utils/python_utils.py,sha256=N8nWeO3san4YnGkffRXG3Ix7VEIMTKSN21FX5TuL7G8,202
|
|
573
|
-
keras_hub/src/utils/tensor_utils.py,sha256=
|
|
586
|
+
keras_hub/src/utils/tensor_utils.py,sha256=tULr53SZLCczN_BD7XvbAq9c9bFVZTn7aYcLbqmbfx8,16982
|
|
574
587
|
keras_hub/src/utils/coco/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
575
588
|
keras_hub/src/utils/coco/coco_utils.py,sha256=x_QnUUvZ92zoFzMJugiInHORc4NrMdWVBkpp8BAYF6s,2586
|
|
576
589
|
keras_hub/src/utils/imagenet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -590,6 +603,7 @@ keras_hub/src/utils/transformers/convert_bart.py,sha256=Tk4h9Md9rwN5wjQbGIVrC7qz
|
|
|
590
603
|
keras_hub/src/utils/transformers/convert_bert.py,sha256=4gQqXCJzC9QWdLPDUAq741K8t_kjPIET050YjUnLeDA,5977
|
|
591
604
|
keras_hub/src/utils/transformers/convert_deit.py,sha256=ubcqYzMlhWTCE2S_TsXICCMmqjN9RsQPaw_70vArnjo,5306
|
|
592
605
|
keras_hub/src/utils/transformers/convert_dinov2.py,sha256=Zmxz33hKJCcykQOcW8XhG_Yy1l8XqIYam1cjzM69-Mk,6986
|
|
606
|
+
keras_hub/src/utils/transformers/convert_dinov3.py,sha256=rZqowTASKSAQQ1HrwlD9_tY7VAQHY_C4_61ky5wUbvE,4448
|
|
593
607
|
keras_hub/src/utils/transformers/convert_distilbert.py,sha256=SlfIRhSRk5c1ir2HGiDPiXa5XdOId_DbcnZO9lbwyZ8,6498
|
|
594
608
|
keras_hub/src/utils/transformers/convert_esm.py,sha256=rOgGnNY37ZbYnoVC3L-Y-yGGAxTRmYtQV0nJoandH2Y,6214
|
|
595
609
|
keras_hub/src/utils/transformers/convert_gemma.py,sha256=ElCgwBpSN5Q7rV5PJawTsoytPzs5ZjuwoY60YAe8y_A,6533
|
|
@@ -602,15 +616,16 @@ keras_hub/src/utils/transformers/convert_qwen.py,sha256=WUxMAEFVqRs7TRw7QU5TH3_e
|
|
|
602
616
|
keras_hub/src/utils/transformers/convert_qwen3.py,sha256=LIormvCMWPq6X9Wo2eNbADjtFZ0nI7tFGZFBxmo4GKw,5700
|
|
603
617
|
keras_hub/src/utils/transformers/convert_qwen3_moe.py,sha256=4Cr2haS20VNHF1iqKRpKeZ47baV0TAXg87zkCfl-JTg,8876
|
|
604
618
|
keras_hub/src/utils/transformers/convert_qwen_moe.py,sha256=a7R28aln-PdAcNuKAXdrtzvslho2Co6GypChxLMKPpc,10618
|
|
619
|
+
keras_hub/src/utils/transformers/convert_smollm3.py,sha256=V2vWES85YSNXNx39I8OwAcOvSpb9KxUscrDr7ra-LPA,5281
|
|
605
620
|
keras_hub/src/utils/transformers/convert_t5gemma.py,sha256=DPOwd61UhjspKuCsk3_EaNvSADGP_f8KLcZARHYVk5Y,9490
|
|
606
621
|
keras_hub/src/utils/transformers/convert_vit.py,sha256=YAmXh519ecSgEO5B4g-aEQg1Bb_6ifFafLMqDTfLn_c,5259
|
|
607
|
-
keras_hub/src/utils/transformers/preset_loader.py,sha256=
|
|
622
|
+
keras_hub/src/utils/transformers/preset_loader.py,sha256=alzuIEhDI6gLpEw05wPJVbOJ2LhwmLB_s7JhDqkb4ec,5364
|
|
608
623
|
keras_hub/src/utils/transformers/safetensor_utils.py,sha256=CYUHyA4y-B61r7NDnCsFb4t_UmSwZ1k9L-8gzEd6KRg,3339
|
|
609
624
|
keras_hub/src/utils/transformers/export/gemma.py,sha256=xX_vfQwvFZ_-lQX4kgMNOGKL7fL_1yk7QyGYV2Qyly4,4699
|
|
610
625
|
keras_hub/src/utils/transformers/export/hf_exporter.py,sha256=Qk52c6LIA2eMHUNY9Vy4STJSpnhLMdJ_t-3ljqhSr4k,5081
|
|
611
|
-
keras_hub/tokenizers/__init__.py,sha256=
|
|
626
|
+
keras_hub/tokenizers/__init__.py,sha256=XFOxDmM1Mz9TxiE8ICZK_-yTTyRFywUUiVwRIzz2QZ8,4770
|
|
612
627
|
keras_hub/utils/__init__.py,sha256=jXPqVGBpJr_PpYmqD8aDG-fRMlxH-ulqCR2SZMn288Y,646
|
|
613
|
-
keras_hub_nightly-0.
|
|
614
|
-
keras_hub_nightly-0.
|
|
615
|
-
keras_hub_nightly-0.
|
|
616
|
-
keras_hub_nightly-0.
|
|
628
|
+
keras_hub_nightly-0.24.0.dev202511080419.dist-info/METADATA,sha256=saL0T6V_Dp7dtdpj1eFLovEcieSzxdMePvkYHKgrqRg,7395
|
|
629
|
+
keras_hub_nightly-0.24.0.dev202511080419.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
630
|
+
keras_hub_nightly-0.24.0.dev202511080419.dist-info/top_level.txt,sha256=N4J6piIWBKa38A4uV-CnIopnOEf8mHAbkNXafXm_CuA,10
|
|
631
|
+
keras_hub_nightly-0.24.0.dev202511080419.dist-info/RECORD,,
|
|
File without changes
|