keras-hub-nightly 0.21.0.dev202505060405__py3-none-any.whl → 0.21.0.dev202505070407__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.
@@ -81,7 +81,7 @@ class CSPNetBackbone(FeaturePyramidBackbone):
81
81
 
82
82
  # Pretrained backbone
83
83
  model = keras_hub.models.CSPNetBackbone.from_preset(
84
- "cspdarknet53_ra_imagenet"
84
+ "csp_darknet_53_ra_imagenet"
85
85
  )
86
86
  model(input_data)
87
87
 
@@ -357,18 +357,6 @@ def bottleneck_block(
357
357
  dtype=dtype,
358
358
  name=f"{name}_bottleneck_block_bn_3",
359
359
  )(x)
360
- if activation == "leaky_relu":
361
- x = layers.LeakyReLU(
362
- negative_slope=0.01,
363
- dtype=dtype,
364
- name=f"{name}_bottleneck_block_activation_3",
365
- )(x)
366
- else:
367
- x = layers.Activation(
368
- activation,
369
- dtype=dtype,
370
- name=f"{name}_bottleneck_block_activation_3",
371
- )(x)
372
360
 
373
361
  x = layers.add(
374
362
  [x, shortcut], dtype=dtype, name=f"{name}_bottleneck_block_add"
@@ -673,6 +661,13 @@ def cross_stage(
673
661
  name=f"{name}_csp_activation_1",
674
662
  )(x)
675
663
  else:
664
+ if strides > 1:
665
+ x = layers.ZeroPadding2D(
666
+ 1,
667
+ data_format=data_format,
668
+ dtype=dtype,
669
+ name=f"{name}_csp_conv_pad_1",
670
+ )(x)
676
671
  x = layers.Conv2D(
677
672
  filters=down_chs,
678
673
  kernel_size=3,
@@ -882,6 +877,13 @@ def cross_stage3(
882
877
  name=f"{name}_cs3_activation_1",
883
878
  )(x)
884
879
  else:
880
+ if strides > 1:
881
+ x = layers.ZeroPadding2D(
882
+ 1,
883
+ data_format=data_format,
884
+ dtype=dtype,
885
+ name=f"{name}_cs3_conv_pad_1",
886
+ )(x)
885
887
  x = layers.Conv2D(
886
888
  filters=down_chs,
887
889
  kernel_size=3,
@@ -1062,6 +1064,13 @@ def dark_stage(
1062
1064
  name=f"{name}_dark_activation_1",
1063
1065
  )(x)
1064
1066
  else:
1067
+ if strides > 1:
1068
+ x = layers.ZeroPadding2D(
1069
+ 1,
1070
+ data_format=data_format,
1071
+ dtype=dtype,
1072
+ name=f"{name}_dark_conv_pad_1",
1073
+ )(x)
1065
1074
  x = layers.Conv2D(
1066
1075
  filters=filters,
1067
1076
  kernel_size=3,
@@ -1091,18 +1100,18 @@ def dark_stage(
1091
1100
  dtype=dtype,
1092
1101
  name=f"{name}_dark_activation_1",
1093
1102
  )(x)
1094
- for i in range(depth):
1095
- x = block_fn(
1096
- filters=block_channels,
1097
- dilation=dilation,
1098
- bottle_ratio=bottle_ratio,
1099
- groups=groups,
1100
- activation=activation,
1101
- data_format=data_format,
1102
- channel_axis=channel_axis,
1103
- dtype=dtype,
1104
- name=f"{name}_block_{i}",
1105
- )(x)
1103
+ for i in range(depth):
1104
+ x = block_fn(
1105
+ filters=block_channels,
1106
+ dilation=dilation,
1107
+ bottle_ratio=bottle_ratio,
1108
+ groups=groups,
1109
+ activation=activation,
1110
+ data_format=data_format,
1111
+ channel_axis=channel_axis,
1112
+ dtype=dtype,
1113
+ name=f"{name}_block_{i}",
1114
+ )(x)
1106
1115
  return x
1107
1116
 
1108
1117
  return apply
@@ -1135,6 +1144,13 @@ def create_csp_stem(
1135
1144
  or (i == last_idx and strides > 2 and not pooling)
1136
1145
  else 1
1137
1146
  )
1147
+ if conv_strides > 1:
1148
+ x = layers.ZeroPadding2D(
1149
+ (kernel_size - 1) // 2,
1150
+ data_format=data_format,
1151
+ dtype=dtype,
1152
+ name=f"csp_stem_pad_{i}",
1153
+ )(x)
1138
1154
  x = layers.Conv2D(
1139
1155
  filters=chs,
1140
1156
  kernel_size=kernel_size,
@@ -1167,10 +1183,19 @@ def create_csp_stem(
1167
1183
 
1168
1184
  if pooling == "max":
1169
1185
  assert strides > 2
1186
+ # Use manual padding to handle edge case scenario to ignore zero's
1187
+ # as max value instead consider negative values from Leaky Relu type
1188
+ # of activations.
1189
+ pad_width = [[1, 1], [1, 1]]
1190
+ if data_format == "channels_last":
1191
+ pad_width += [[0, 0]]
1192
+ else:
1193
+ pad_width = [[0, 0]] + pad_width
1194
+ pad_width = [[0, 0]] + pad_width
1195
+ x = ops.pad(x, pad_width=pad_width, constant_values=float("-inf"))
1170
1196
  x = layers.MaxPooling2D(
1171
1197
  pool_size=3,
1172
1198
  strides=2,
1173
- padding="same",
1174
1199
  data_format=data_format,
1175
1200
  dtype=dtype,
1176
1201
  name="csp_stem_pool",
@@ -6,11 +6,46 @@ backbone_presets = {
6
6
  "description": (
7
7
  "A CSP-DarkNet (Cross-Stage-Partial) image classification model"
8
8
  " pre-trained on the Randomly Augmented ImageNet 1k dataset at "
9
- "a 224x224 resolution."
9
+ "a 256x256 resolution."
10
10
  ),
11
- "params": 26652512,
11
+ "params": 27642184,
12
12
  "path": "cspnet",
13
13
  },
14
- "kaggle_handle": "kaggle://keras/cspdarknet/keras/csp_darknet_53_ra_imagenet/1",
14
+ "kaggle_handle": "kaggle://keras/cspdarknet/keras/csp_darknet_53_ra_imagenet/2",
15
+ },
16
+ "csp_resnext_50_ra_imagenet": {
17
+ "metadata": {
18
+ "description": (
19
+ "A CSP-ResNeXt (Cross-Stage-Partial) image classification model"
20
+ " pre-trained on the Randomly Augmented ImageNet 1k dataset at "
21
+ "a 256x256 resolution."
22
+ ),
23
+ "params": 20569896,
24
+ "path": "cspnet",
25
+ },
26
+ "kaggle_handle": "kaggle://keras/cspdarknet/keras/csp_resnext_50_ra_imagenet/1",
27
+ },
28
+ "csp_resnet_50_ra_imagenet": {
29
+ "metadata": {
30
+ "description": (
31
+ "A CSP-ResNet (Cross-Stage-Partial) image classification model"
32
+ " pre-trained on the Randomly Augmented ImageNet 1k dataset at "
33
+ "a 256x256 resolution."
34
+ ),
35
+ "params": 21616168,
36
+ "path": "cspnet",
37
+ },
38
+ "kaggle_handle": "kaggle://keras/cspdarknet/keras/csp_resnet_50_ra_imagenet/1",
39
+ },
40
+ "darknet_53_imagenet": {
41
+ "metadata": {
42
+ "description": (
43
+ "A DarkNet image classification model pre-trained on the"
44
+ "ImageNet 1k dataset at a 256x256 resolution."
45
+ ),
46
+ "params": 41609928,
47
+ "path": "cspnet",
48
+ },
49
+ "kaggle_handle": "kaggle://keras/cspdarknet/keras/darknet_53_imagenet/1",
15
50
  },
16
51
  }
@@ -1,5 +1,3 @@
1
- import keras
2
-
3
1
  from keras_hub.src.api_export import keras_hub_export
4
2
  from keras_hub.src.models.image_segmenter_preprocessor import (
5
3
  ImageSegmenterPreprocessor,
@@ -8,25 +6,9 @@ from keras_hub.src.models.segformer.segformer_backbone import SegFormerBackbone
8
6
  from keras_hub.src.models.segformer.segformer_image_converter import (
9
7
  SegFormerImageConverter,
10
8
  )
11
- from keras_hub.src.utils.tensor_utils import preprocessing_function
12
-
13
- IMAGENET_DEFAULT_MEAN = [0.485, 0.456, 0.406]
14
- IMAGENET_DEFAULT_STD = [0.229, 0.224, 0.225]
15
9
 
16
10
 
17
11
  @keras_hub_export("keras_hub.models.SegFormerImageSegmenterPreprocessor")
18
12
  class SegFormerImageSegmenterPreprocessor(ImageSegmenterPreprocessor):
19
13
  backbone_cls = SegFormerBackbone
20
14
  image_converter_cls = SegFormerImageConverter
21
-
22
- @preprocessing_function
23
- def call(self, x, y=None, sample_weight=None):
24
- if self.image_converter:
25
- x = self.image_converter(x)
26
- if y is not None:
27
- y = self.image_converter(y)
28
-
29
- x = x / 255
30
- x = (x - IMAGENET_DEFAULT_MEAN) / IMAGENET_DEFAULT_STD
31
-
32
- return keras.utils.pack_x_y_sample_weight(x, y, sample_weight)
@@ -10,7 +10,7 @@ presets = {
10
10
  "params": 3719027,
11
11
  "path": "segformer_b0",
12
12
  },
13
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b0_ade20k_512/2",
13
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b0_ade20k_512/3",
14
14
  },
15
15
  "segformer_b1_ade20k_512": {
16
16
  "metadata": {
@@ -21,7 +21,7 @@ presets = {
21
21
  "params": 13682643,
22
22
  "path": "segformer_b1",
23
23
  },
24
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b1_ade20k_512/2",
24
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b1_ade20k_512/5",
25
25
  },
26
26
  "segformer_b2_ade20k_512": {
27
27
  "metadata": {
@@ -32,7 +32,7 @@ presets = {
32
32
  "params": 24727507,
33
33
  "path": "segformer_b2",
34
34
  },
35
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b2_ade20k_512/2",
35
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b2_ade20k_512/3",
36
36
  },
37
37
  "segformer_b3_ade20k_512": {
38
38
  "metadata": {
@@ -43,7 +43,7 @@ presets = {
43
43
  "params": 44603347,
44
44
  "path": "segformer_b3",
45
45
  },
46
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b3_ade20k_512/2",
46
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b3_ade20k_512/3",
47
47
  },
48
48
  "segformer_b4_ade20k_512": {
49
49
  "metadata": {
@@ -54,7 +54,7 @@ presets = {
54
54
  "params": 61373907,
55
55
  "path": "segformer_b4",
56
56
  },
57
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b4_ade20k_512/2",
57
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b4_ade20k_512/3",
58
58
  },
59
59
  "segformer_b5_ade20k_640": {
60
60
  "metadata": {
@@ -65,7 +65,7 @@ presets = {
65
65
  "params": 81974227,
66
66
  "path": "segformer_b5",
67
67
  },
68
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b5_ade20k_640/2",
68
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b5_ade20k_640/3",
69
69
  },
70
70
  "segformer_b0_cityscapes_1024": {
71
71
  "metadata": {
@@ -76,7 +76,7 @@ presets = {
76
76
  "params": 3719027,
77
77
  "path": "segformer_b0",
78
78
  },
79
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b0_cityscapes_1024/2",
79
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b0_cityscapes_1024/3",
80
80
  },
81
81
  "segformer_b1_cityscapes_1024": {
82
82
  "metadata": {
@@ -87,7 +87,7 @@ presets = {
87
87
  "params": 13682643,
88
88
  "path": "segformer_b1",
89
89
  },
90
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b1_ade20k_512/2",
90
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b1_ade20k_512/1",
91
91
  },
92
92
  "segformer_b2_cityscapes_1024": {
93
93
  "metadata": {
@@ -98,7 +98,7 @@ presets = {
98
98
  "params": 24727507,
99
99
  "path": "segformer_b2",
100
100
  },
101
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b2_cityscapes_1024/2",
101
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b2_cityscapes_1024/3",
102
102
  },
103
103
  "segformer_b3_cityscapes_1024": {
104
104
  "metadata": {
@@ -109,7 +109,7 @@ presets = {
109
109
  "params": 44603347,
110
110
  "path": "segformer_b3",
111
111
  },
112
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b3_cityscapes_1024/2",
112
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b3_cityscapes_1024/3",
113
113
  },
114
114
  "segformer_b4_cityscapes_1024": {
115
115
  "metadata": {
@@ -120,7 +120,7 @@ presets = {
120
120
  "params": 61373907,
121
121
  "path": "segformer_b4",
122
122
  },
123
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b4_cityscapes_1024/2",
123
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b4_cityscapes_1024/3",
124
124
  },
125
125
  "segformer_b5_cityscapes_1024": {
126
126
  "metadata": {
@@ -131,6 +131,6 @@ presets = {
131
131
  "params": 81974227,
132
132
  "path": "segformer_b5",
133
133
  },
134
- "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b5_cityscapes_1024/2",
134
+ "kaggle_handle": "kaggle://keras/segformer/keras/segformer_b5_cityscapes_1024/3",
135
135
  },
136
136
  }
@@ -17,10 +17,69 @@ def convert_backbone_config(timm_config):
17
17
  bottle_ratio = (0.5,) + (1.0,)
18
18
  block_ratio = (1.0,) + (0.5,)
19
19
  expand_ratio = (2.0,) + (1.0,)
20
+ stem_padding = "same"
21
+ stem_pooling = None
20
22
  stage_type = "csp"
23
+ groups = 1
21
24
  block_type = "dark_block"
22
25
  down_growth = True
23
- stackwise_strides = 2
26
+ stackwise_strides = [2, 2, 2, 2, 2]
27
+ avg_down = False
28
+ cross_linear = False
29
+ elif timm_architecture == "cspresnet50":
30
+ stem_filters = 64
31
+ stem_kernel_size = 7
32
+ stem_strides = 4
33
+ stackwise_depth = [3, 3, 5, 2]
34
+ stackwise_strides = [1, 2, 2, 2]
35
+ stackwise_num_filters = [128, 256, 512, 1024]
36
+ block_type = "bottleneck_block"
37
+ stage_type = "csp"
38
+ bottle_ratio = [0.5]
39
+ block_ratio = [1.0]
40
+ expand_ratio = [2.0]
41
+ stem_padding = "valid"
42
+ stem_pooling = "max"
43
+ avg_down = False
44
+ groups = 1
45
+ down_growth = False
46
+ cross_linear = True
47
+ elif timm_architecture == "cspresnext50":
48
+ stem_filters = 64
49
+ stem_kernel_size = 7
50
+ stem_strides = 4
51
+ stackwise_depth = [3, 3, 5, 2]
52
+ stackwise_num_filters = [256, 512, 1024, 2048]
53
+ bottle_ratio = [1.0]
54
+ block_ratio = [0.5]
55
+ expand_ratio = [1.0]
56
+ stage_type = "csp"
57
+ block_type = "bottleneck_block"
58
+ stem_pooling = "max"
59
+ stackwise_strides = [1, 2, 2, 2]
60
+ groups = 32
61
+ stem_padding = "valid"
62
+ avg_down = False
63
+ down_growth = False
64
+ cross_linear = True
65
+ elif timm_architecture == "darknet53":
66
+ stem_filters = 32
67
+ stem_kernel_size = 3
68
+ stem_strides = 1
69
+ stackwise_depth = [1, 2, 8, 8, 4]
70
+ stackwise_num_filters = [64, 128, 256, 512, 1024]
71
+ bottle_ratio = [0.5]
72
+ block_ratio = [1.0]
73
+ groups = 1
74
+ expand_ratio = [1.0]
75
+ stage_type = "dark"
76
+ block_type = "dark_block"
77
+ stem_pooling = None
78
+ stackwise_strides = [2, 2, 2, 2, 2]
79
+ stem_padding = "same"
80
+ avg_down = False
81
+ down_growth = False
82
+ cross_linear = False
24
83
  else:
25
84
  raise ValueError(
26
85
  f"Currently, the architecture {timm_architecture} is not supported."
@@ -38,6 +97,11 @@ def convert_backbone_config(timm_config):
38
97
  block_type=block_type,
39
98
  stackwise_strides=stackwise_strides,
40
99
  down_growth=down_growth,
100
+ stem_pooling=stem_pooling,
101
+ stem_padding=stem_padding,
102
+ avg_down=avg_down,
103
+ cross_linear=cross_linear,
104
+ groups=groups,
41
105
  )
42
106
 
43
107
 
@@ -81,21 +145,36 @@ def convert_weights(backbone, loader, timm_config):
81
145
  stackwise_depth = backbone.stackwise_depth
82
146
  stage_type = backbone.stage_type
83
147
  block_type = backbone.block_type
148
+ strides = backbone.stackwise_strides
84
149
 
85
150
  for idx, block in enumerate(stackwise_depth):
86
- port_conv2d(
87
- f"stages.{idx}.conv_down.conv",
88
- f"stage_{idx}_{stage_type}_conv_down_1",
89
- )
90
- port_batch_normalization(
91
- f"stages.{idx}.conv_down.bn", f"stage_{idx}_{stage_type}_bn_1"
92
- )
93
- port_conv2d(
94
- f"stages.{idx}.conv_exp.conv", f"stage_{idx}_{stage_type}_conv_exp"
95
- )
96
- port_batch_normalization(
97
- f"stages.{idx}.conv_exp.bn", f"stage_{idx}_{stage_type}_bn_2"
98
- )
151
+ if strides[idx] != 1 or stage_type == "dark":
152
+ if strides[idx] == 2 and backbone.avg_down:
153
+ port_conv2d(
154
+ f"stages.{idx}.conv_down.1.conv",
155
+ f"stage_{idx}_{stage_type}_conv_down_1",
156
+ )
157
+ port_batch_normalization(
158
+ f"stages.{idx}.conv_down.1.bn",
159
+ f"stage_{idx}_{stage_type}_bn_1",
160
+ )
161
+ else:
162
+ port_conv2d(
163
+ f"stages.{idx}.conv_down.conv",
164
+ f"stage_{idx}_{stage_type}_conv_down_1",
165
+ )
166
+ port_batch_normalization(
167
+ f"stages.{idx}.conv_down.bn",
168
+ f"stage_{idx}_{stage_type}_bn_1",
169
+ )
170
+ if stage_type != "dark":
171
+ port_conv2d(
172
+ f"stages.{idx}.conv_exp.conv",
173
+ f"stage_{idx}_{stage_type}_conv_exp",
174
+ )
175
+ port_batch_normalization(
176
+ f"stages.{idx}.conv_exp.bn", f"stage_{idx}_{stage_type}_bn_2"
177
+ )
99
178
 
100
179
  for i in range(block):
101
180
  port_conv2d(
@@ -133,16 +212,8 @@ def convert_weights(backbone, loader, timm_config):
133
212
  f"stages.{idx}.conv_transition_b.bn",
134
213
  f"stage_{idx}_{stage_type}_transition_b_bn",
135
214
  )
136
- port_conv2d(
137
- f"stages.{idx}.conv_transition.conv",
138
- f"stage_{idx}_{stage_type}_conv_transition",
139
- )
140
- port_batch_normalization(
141
- f"stages.{idx}.conv_transition.bn",
142
- f"stage_{idx}_{stage_type}_transition_bn",
143
- )
144
215
 
145
- else:
216
+ if stage_type != "dark":
146
217
  port_conv2d(
147
218
  f"stages.{idx}.conv_transition.conv",
148
219
  f"stage_{idx}_{stage_type}_conv_transition",
@@ -16,17 +16,17 @@ class TimmPresetLoader(PresetLoader):
16
16
  def __init__(self, preset, config):
17
17
  super().__init__(preset, config)
18
18
  architecture = self.config["architecture"]
19
- if "resnet" in architecture:
19
+ if architecture.startswith("resnet"):
20
20
  self.converter = convert_resnet
21
- elif "csp" in architecture:
21
+ elif architecture.startswith(("csp", "dark")):
22
22
  self.converter = convert_cspnet
23
- elif "densenet" in architecture:
23
+ elif architecture.startswith("densenet"):
24
24
  self.converter = convert_densenet
25
- elif "mobilenet" in architecture:
25
+ elif architecture.startswith("mobilenet"):
26
26
  self.converter = convert_mobilenet
27
- elif "vgg" in architecture:
27
+ elif architecture.startswith("vgg"):
28
28
  self.converter = convert_vgg
29
- elif "efficientnet" in architecture:
29
+ elif architecture.startswith("efficientnet"):
30
30
  self.converter = convert_efficientnet
31
31
  else:
32
32
  raise ValueError(
@@ -50,19 +50,19 @@ def convert_weights(backbone, loader, transformers_config):
50
50
  # Attention layers
51
51
  ## Query
52
52
  loader.port_weight(
53
- keras_variable=decoder_layer._self_attention_layer._query_dense.kernel,
53
+ keras_variable=decoder_layer._self_attention_layer.query_dense.kernel,
54
54
  hf_weight_key=f"model.layers.{i}.self_attn.q_proj.weight",
55
55
  hook_fn=transpose_and_reshape,
56
56
  )
57
57
  ## Key
58
58
  loader.port_weight(
59
- keras_variable=decoder_layer._self_attention_layer._key_dense.kernel,
59
+ keras_variable=decoder_layer._self_attention_layer.key_dense.kernel,
60
60
  hf_weight_key=f"model.layers.{i}.self_attn.k_proj.weight",
61
61
  hook_fn=transpose_and_reshape,
62
62
  )
63
63
  ## Value
64
64
  loader.port_weight(
65
- keras_variable=decoder_layer._self_attention_layer._value_dense.kernel,
65
+ keras_variable=decoder_layer._self_attention_layer.value_dense.kernel,
66
66
  hf_weight_key=f"model.layers.{i}.self_attn.v_proj.weight",
67
67
  hook_fn=transpose_and_reshape,
68
68
  )
@@ -64,34 +64,34 @@ def convert_weights(backbone, loader, transformers_config):
64
64
 
65
65
  ## Query
66
66
  loader.port_weight(
67
- keras_variable=decoder_layer._self_attention_layer._query_dense.kernel,
67
+ keras_variable=decoder_layer._self_attention_layer.query_dense.kernel,
68
68
  hf_weight_key=f"model.layers.{i}.self_attn.q_proj.weight",
69
69
  hook_fn=transpose_and_reshape,
70
70
  )
71
71
  loader.port_weight(
72
- keras_variable=decoder_layer._self_attention_layer._query_dense.bias,
72
+ keras_variable=decoder_layer._self_attention_layer.query_dense.bias,
73
73
  hf_weight_key=f"model.layers.{i}.self_attn.q_proj.bias",
74
74
  hook_fn=transpose_and_reshape,
75
75
  )
76
76
  ## Key
77
77
  loader.port_weight(
78
- keras_variable=decoder_layer._self_attention_layer._key_dense.kernel,
78
+ keras_variable=decoder_layer._self_attention_layer.key_dense.kernel,
79
79
  hf_weight_key=f"model.layers.{i}.self_attn.k_proj.weight",
80
80
  hook_fn=transpose_and_reshape,
81
81
  )
82
82
  loader.port_weight(
83
- keras_variable=decoder_layer._self_attention_layer._key_dense.bias,
83
+ keras_variable=decoder_layer._self_attention_layer.key_dense.bias,
84
84
  hf_weight_key=f"model.layers.{i}.self_attn.k_proj.bias",
85
85
  hook_fn=transpose_and_reshape,
86
86
  )
87
87
  ## Value
88
88
  loader.port_weight(
89
- keras_variable=decoder_layer._self_attention_layer._value_dense.kernel,
89
+ keras_variable=decoder_layer._self_attention_layer.value_dense.kernel,
90
90
  hf_weight_key=f"model.layers.{i}.self_attn.v_proj.weight",
91
91
  hook_fn=transpose_and_reshape,
92
92
  )
93
93
  loader.port_weight(
94
- keras_variable=decoder_layer._self_attention_layer._value_dense.bias,
94
+ keras_variable=decoder_layer._self_attention_layer.value_dense.bias,
95
95
  hf_weight_key=f"model.layers.{i}.self_attn.v_proj.bias",
96
96
  hook_fn=transpose_and_reshape,
97
97
  )
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.21.0.dev202505060405"
4
+ __version__ = "0.21.0.dev202505070407"
5
5
 
6
6
 
7
7
  @keras_hub_export("keras_hub.version")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: keras-hub-nightly
3
- Version: 0.21.0.dev202505060405
3
+ Version: 0.21.0.dev202505070407
4
4
  Summary: Pretrained models for Keras.
5
5
  Author-email: Keras team <keras-users@googlegroups.com>
6
6
  License-Expression: Apache-2.0
@@ -5,7 +5,7 @@ keras_hub/models/__init__.py,sha256=kFWNpjemQ8FLzDlFfMdAOOXJKtxuVHFxyZm7-1mH4Gc,
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=mDGGmnAALEffzSVUqMpzYSiGVm-bXRZqLLdR7dzwTN0,222
8
+ keras_hub/src/version.py,sha256=aaWmSzLN-AkMZRmAoGmZ2N0SrrxAlh7bwjgP-M3xnCs,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
@@ -110,11 +110,11 @@ keras_hub/src/models/clip/clip_tokenizer.py,sha256=6gIm_LWRbCeBQUI9M2gA8-OXb4tXG
110
110
  keras_hub/src/models/clip/clip_vision_embedding.py,sha256=6_qC7T1dqKd-39EreGmHZj-YfjOLEDDKjWnEKcKIyuY,3667
111
111
  keras_hub/src/models/clip/clip_vision_encoder.py,sha256=q62MXySZN38uCsjqq8cttfBxD7P5abaKQV2i8_u4N6E,6385
112
112
  keras_hub/src/models/cspnet/__init__.py,sha256=TOpvk2cfOVv1bPA1BOGZj0mhmhc6E98zZmW9e0PIvhk,257
113
- keras_hub/src/models/cspnet/cspnet_backbone.py,sha256=xCeu8BpQSpf-EgCrQehQDg4jNKRAWm0h8paWBfN2DGE,41381
113
+ keras_hub/src/models/cspnet/cspnet_backbone.py,sha256=meHzxubG_9vHQHSelDfrROaQERkDiWkjTtk_gKaWsDc,42457
114
114
  keras_hub/src/models/cspnet/cspnet_image_classifier.py,sha256=JqfBHIBTFxaLOyAWx6TdXs0aAOMbcCx1oo47RoQnytc,510
115
115
  keras_hub/src/models/cspnet/cspnet_image_classifier_preprocessor.py,sha256=ACRnOhjslk2ZZhpPfJioW4um4RLYa-Suk59z9wa5vfo,543
116
116
  keras_hub/src/models/cspnet/cspnet_image_converter.py,sha256=f-ICTY2T-RlCykU6qOHDxg0fY7ECfZ_xpSJzIVmbvpc,342
117
- keras_hub/src/models/cspnet/cspnet_presets.py,sha256=fWzPz3eZuhFNxxPn9MJHabcXiyJA2PRRVlzNmoFBwWg,533
117
+ keras_hub/src/models/cspnet/cspnet_presets.py,sha256=n01_7DTvbmaA_qs2GWiNLkBXNrrEvigPXSGc2NDTot8,1870
118
118
  keras_hub/src/models/deberta_v3/__init__.py,sha256=6E-QtAD1uvTBobrn5bUoyB1qtaCJU-t73TtbAEH6i9g,288
119
119
  keras_hub/src/models/deberta_v3/deberta_v3_backbone.py,sha256=oXdV7naTiMowuU3GsXEUo5K0GXiKbPKxdo27o5fXWjc,7258
120
120
  keras_hub/src/models/deberta_v3/deberta_v3_masked_lm.py,sha256=ADBktf1DdiP9T6LCaMhdFiZ_mUbBRKMekY5mGwAeJIo,4186
@@ -353,8 +353,8 @@ keras_hub/src/models/segformer/__init__.py,sha256=ERgxA8tyeG2l4G6ywHisn6Oo0Iu7_9
353
353
  keras_hub/src/models/segformer/segformer_backbone.py,sha256=T61WQ50T6IwSeiK1NfUKJu3eqbj_m5gz9cpUPtqMfcc,5666
354
354
  keras_hub/src/models/segformer/segformer_image_converter.py,sha256=zePZ1cYZl-2TaEF82lj3y7kXjDao5Hgw8c7qfKI2Jd8,360
355
355
  keras_hub/src/models/segformer/segformer_image_segmenter.py,sha256=JzX8oJASWdkw8wbm8cohjPnumIvBvj7GGEpbK7ex-6w,5926
356
- keras_hub/src/models/segformer/segformer_image_segmenter_preprocessor.py,sha256=4xj6_E-JlYpXv064VtEewxaQuD8aXw5egoUKlr_fLPg,1125
357
- keras_hub/src/models/segformer/segformer_presets.py,sha256=ET39ospixkTaCsjoMLdJrr3wlGvTAQu5prleVC5lMZI,4793
356
+ keras_hub/src/models/segformer/segformer_image_segmenter_preprocessor.py,sha256=Jlsy41n7IymjvU3ENKQJtsQ4xkJEGRtxEm-defz2Nbc,568
357
+ keras_hub/src/models/segformer/segformer_presets.py,sha256=4fPkGTP_jjd3Qcd1KbWYZ7-ze0wdJskMwKG4GZ-UwEg,4793
358
358
  keras_hub/src/models/siglip/__init__.py,sha256=uImQYl06pioLwla6c_tiF2PSJKHtq0aSxDPsynQbXcA,257
359
359
  keras_hub/src/models/siglip/siglip_backbone.py,sha256=dXp7BU7mqKWthl70KFZ2AMILjNIu5A6itQFu6XD22Qs,8372
360
360
  keras_hub/src/models/siglip/siglip_image_converter.py,sha256=yjYc0XOyL37WLlr-X6V4QXI1FCyiKngbHXrZK0hNB1U,342
@@ -461,13 +461,13 @@ keras_hub/src/utils/coco/coco_utils.py,sha256=x_QnUUvZ92zoFzMJugiInHORc4NrMdWVBk
461
461
  keras_hub/src/utils/imagenet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
462
462
  keras_hub/src/utils/imagenet/imagenet_utils.py,sha256=07ilM5feeD7Ut6YSbVj99RXAZOQONSC1IeKa3I9U6UQ,40161
463
463
  keras_hub/src/utils/timm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
464
- keras_hub/src/utils/timm/convert_cspnet.py,sha256=O5HCdeKcSFWOoFr8_wIUQb4Noc0tBEo5Aogk2d6SEes,5676
464
+ keras_hub/src/utils/timm/convert_cspnet.py,sha256=9p1IF0B4UPbDTruQQXR6mJEUdhvQvHx9E0SKNn_Lbw4,8047
465
465
  keras_hub/src/utils/timm/convert_densenet.py,sha256=fu8HBIQis5o3ib2tyI2qnmYScVrVIQySok8vTfa1qJ8,3393
466
466
  keras_hub/src/utils/timm/convert_efficientnet.py,sha256=SgEIlyyinS04qoQpEgh3WazHq544zNUCCpfmWh3EjSs,17100
467
467
  keras_hub/src/utils/timm/convert_mobilenet.py,sha256=XTqHOK4nJwigKefsw7ktWJtOgRpEVMO9MtRhuP5qP_k,9219
468
468
  keras_hub/src/utils/timm/convert_resnet.py,sha256=8JFkVtdpy5z9h83LJ97rD-a8FRejXPZvMNksNuStqjM,5834
469
469
  keras_hub/src/utils/timm/convert_vgg.py,sha256=MT5jGnLrzenPpe66Af_Lp1IdR9KGtsSrcmn6_UPqHvQ,2419
470
- keras_hub/src/utils/timm/preset_loader.py,sha256=j2HYi61Zbt0CGd33evFJ8j2fraXl0Zardf4qqAb82K0,3841
470
+ keras_hub/src/utils/timm/preset_loader.py,sha256=4hULdq2K2hgPYTZR71PGV4YNDHLG1zcoxF9TXpg6fGE,3905
471
471
  keras_hub/src/utils/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
472
472
  keras_hub/src/utils/transformers/convert_albert.py,sha256=VdKclZpCxtDWq3UbUUQZf4fR9DJK_JYZ73B4O_G9skg,7695
473
473
  keras_hub/src/utils/transformers/convert_bart.py,sha256=Tk4h9Md9rwN5wjQbGIVrC7qzDpF8kI8qm-FKL8HlUok,14411
@@ -477,16 +477,16 @@ keras_hub/src/utils/transformers/convert_gemma.py,sha256=ElCgwBpSN5Q7rV5PJawTsoy
477
477
  keras_hub/src/utils/transformers/convert_gpt2.py,sha256=HCeHN_-GiQJRxLCM9OCJJ1watPVpIBF8ujS8pGbBOWc,5703
478
478
  keras_hub/src/utils/transformers/convert_llama3.py,sha256=c5phNl-QayQ_BS0s-lenbu6oHxqfwDShKJoh9DluxUU,6146
479
479
  keras_hub/src/utils/transformers/convert_mistral.py,sha256=kVhN9h1ZFVhwkNW8p3wnS7eANJUXIsNy1RxWXy20Gqw,4760
480
- keras_hub/src/utils/transformers/convert_mixtral.py,sha256=vSaqnbMyh31eIj7VQAzoCqLjrc5EHbuOXbrct-49xGM,5512
480
+ keras_hub/src/utils/transformers/convert_mixtral.py,sha256=_esUzVRYABR5pHHSALqUieSuAeBg4te1JnlGQENqECU,5509
481
481
  keras_hub/src/utils/transformers/convert_pali_gemma.py,sha256=B1leeDw96Yvu81hYumf66hIid07k5NLqoeWAJgPnaLs,10649
482
482
  keras_hub/src/utils/transformers/convert_qwen.py,sha256=WUxMAEFVqRs7TRw7QU5TH3_ev4yf02R1xFVliMvTQqg,5886
483
- keras_hub/src/utils/transformers/convert_qwen_moe.py,sha256=hRdN5M3czBy_jASm20z-FkO7oB20Aj7EwJgYn-WWaqE,10624
483
+ keras_hub/src/utils/transformers/convert_qwen_moe.py,sha256=a7R28aln-PdAcNuKAXdrtzvslho2Co6GypChxLMKPpc,10618
484
484
  keras_hub/src/utils/transformers/convert_vit.py,sha256=9SUZ9utNJhW_5cj3acMn9cRy47u2eIcDsrhmzj77o9k,5187
485
485
  keras_hub/src/utils/transformers/preset_loader.py,sha256=1nfS5xVsl-JROGXJXltTqV1fQdcUlZbGGcbf-n79pXM,4225
486
486
  keras_hub/src/utils/transformers/safetensor_utils.py,sha256=CYUHyA4y-B61r7NDnCsFb4t_UmSwZ1k9L-8gzEd6KRg,3339
487
487
  keras_hub/tokenizers/__init__.py,sha256=4etC--bzhczJrRcvCmxZmOC9hJJcIVOUCgmqMLB3bp0,4051
488
488
  keras_hub/utils/__init__.py,sha256=jXPqVGBpJr_PpYmqD8aDG-fRMlxH-ulqCR2SZMn288Y,646
489
- keras_hub_nightly-0.21.0.dev202505060405.dist-info/METADATA,sha256=oxvVAtbYQvfOFjjOKYBxYbatGhpqwKtu05psmFmCIlM,7393
490
- keras_hub_nightly-0.21.0.dev202505060405.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
491
- keras_hub_nightly-0.21.0.dev202505060405.dist-info/top_level.txt,sha256=N4J6piIWBKa38A4uV-CnIopnOEf8mHAbkNXafXm_CuA,10
492
- keras_hub_nightly-0.21.0.dev202505060405.dist-info/RECORD,,
489
+ keras_hub_nightly-0.21.0.dev202505070407.dist-info/METADATA,sha256=qZV9GqHYenWgLpKBXdil_rhFnetmHPFV-OgVFjxPKTs,7393
490
+ keras_hub_nightly-0.21.0.dev202505070407.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
491
+ keras_hub_nightly-0.21.0.dev202505070407.dist-info/top_level.txt,sha256=N4J6piIWBKa38A4uV-CnIopnOEf8mHAbkNXafXm_CuA,10
492
+ keras_hub_nightly-0.21.0.dev202505070407.dist-info/RECORD,,