keras-nightly 3.14.0.dev2025122704__py3-none-any.whl → 3.14.0.dev2026010104__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/_tf_keras/keras/ops/__init__.py +1 -0
- keras/_tf_keras/keras/ops/numpy/__init__.py +1 -0
- keras/ops/__init__.py +1 -0
- keras/ops/numpy/__init__.py +1 -0
- keras/src/backend/jax/numpy.py +6 -0
- keras/src/backend/numpy/numpy.py +8 -0
- keras/src/backend/openvino/numpy.py +33 -1
- keras/src/backend/tensorflow/numpy.py +10 -0
- keras/src/backend/torch/numpy.py +10 -0
- keras/src/ops/image.py +3 -3
- keras/src/ops/numpy.py +43 -0
- keras/src/saving/file_editor.py +81 -6
- keras/src/version.py +1 -1
- {keras_nightly-3.14.0.dev2025122704.dist-info → keras_nightly-3.14.0.dev2026010104.dist-info}/METADATA +1 -1
- {keras_nightly-3.14.0.dev2025122704.dist-info → keras_nightly-3.14.0.dev2026010104.dist-info}/RECORD +17 -17
- {keras_nightly-3.14.0.dev2025122704.dist-info → keras_nightly-3.14.0.dev2026010104.dist-info}/WHEEL +0 -0
- {keras_nightly-3.14.0.dev2025122704.dist-info → keras_nightly-3.14.0.dev2026010104.dist-info}/top_level.txt +0 -0
|
@@ -247,6 +247,7 @@ from keras.src.ops.numpy import multiply as multiply
|
|
|
247
247
|
from keras.src.ops.numpy import nan_to_num as nan_to_num
|
|
248
248
|
from keras.src.ops.numpy import ndim as ndim
|
|
249
249
|
from keras.src.ops.numpy import negative as negative
|
|
250
|
+
from keras.src.ops.numpy import nextafter as nextafter
|
|
250
251
|
from keras.src.ops.numpy import nonzero as nonzero
|
|
251
252
|
from keras.src.ops.numpy import not_equal as not_equal
|
|
252
253
|
from keras.src.ops.numpy import ones as ones
|
|
@@ -131,6 +131,7 @@ from keras.src.ops.numpy import multiply as multiply
|
|
|
131
131
|
from keras.src.ops.numpy import nan_to_num as nan_to_num
|
|
132
132
|
from keras.src.ops.numpy import ndim as ndim
|
|
133
133
|
from keras.src.ops.numpy import negative as negative
|
|
134
|
+
from keras.src.ops.numpy import nextafter as nextafter
|
|
134
135
|
from keras.src.ops.numpy import nonzero as nonzero
|
|
135
136
|
from keras.src.ops.numpy import not_equal as not_equal
|
|
136
137
|
from keras.src.ops.numpy import ones as ones
|
keras/ops/__init__.py
CHANGED
|
@@ -247,6 +247,7 @@ from keras.src.ops.numpy import multiply as multiply
|
|
|
247
247
|
from keras.src.ops.numpy import nan_to_num as nan_to_num
|
|
248
248
|
from keras.src.ops.numpy import ndim as ndim
|
|
249
249
|
from keras.src.ops.numpy import negative as negative
|
|
250
|
+
from keras.src.ops.numpy import nextafter as nextafter
|
|
250
251
|
from keras.src.ops.numpy import nonzero as nonzero
|
|
251
252
|
from keras.src.ops.numpy import not_equal as not_equal
|
|
252
253
|
from keras.src.ops.numpy import ones as ones
|
keras/ops/numpy/__init__.py
CHANGED
|
@@ -131,6 +131,7 @@ from keras.src.ops.numpy import multiply as multiply
|
|
|
131
131
|
from keras.src.ops.numpy import nan_to_num as nan_to_num
|
|
132
132
|
from keras.src.ops.numpy import ndim as ndim
|
|
133
133
|
from keras.src.ops.numpy import negative as negative
|
|
134
|
+
from keras.src.ops.numpy import nextafter as nextafter
|
|
134
135
|
from keras.src.ops.numpy import nonzero as nonzero
|
|
135
136
|
from keras.src.ops.numpy import not_equal as not_equal
|
|
136
137
|
from keras.src.ops.numpy import ones as ones
|
keras/src/backend/jax/numpy.py
CHANGED
|
@@ -1351,6 +1351,12 @@ def negative(x):
|
|
|
1351
1351
|
return jnp.negative(x)
|
|
1352
1352
|
|
|
1353
1353
|
|
|
1354
|
+
def nextafter(x1, x2):
|
|
1355
|
+
x1 = convert_to_tensor(x1)
|
|
1356
|
+
x2 = convert_to_tensor(x2)
|
|
1357
|
+
return jnp.nextafter(x1, x2)
|
|
1358
|
+
|
|
1359
|
+
|
|
1354
1360
|
@sparse.elementwise_unary(linear=False)
|
|
1355
1361
|
def square(x):
|
|
1356
1362
|
x = convert_to_tensor(x)
|
keras/src/backend/numpy/numpy.py
CHANGED
|
@@ -1335,6 +1335,14 @@ def negative(x):
|
|
|
1335
1335
|
return np.negative(x)
|
|
1336
1336
|
|
|
1337
1337
|
|
|
1338
|
+
def nextafter(x1, x2):
|
|
1339
|
+
x1 = convert_to_tensor(x1)
|
|
1340
|
+
x2 = convert_to_tensor(x2)
|
|
1341
|
+
dtype = dtypes.result_type(x1.dtype, x2.dtype, float)
|
|
1342
|
+
|
|
1343
|
+
return np.nextafter(x1, x2).astype(dtype)
|
|
1344
|
+
|
|
1345
|
+
|
|
1338
1346
|
def square(x):
|
|
1339
1347
|
x = convert_to_tensor(x)
|
|
1340
1348
|
if standardize_dtype(x.dtype) == "bool":
|
|
@@ -1071,7 +1071,33 @@ def expm1(x):
|
|
|
1071
1071
|
|
|
1072
1072
|
|
|
1073
1073
|
def flip(x, axis=None):
|
|
1074
|
-
|
|
1074
|
+
x_node = get_ov_output(x)
|
|
1075
|
+
ndim = x.ndim
|
|
1076
|
+
if ndim is None:
|
|
1077
|
+
raise ValueError(
|
|
1078
|
+
"The `flip` operation does not support tensors with dynamic rank"
|
|
1079
|
+
"for the OpenVINO backend."
|
|
1080
|
+
)
|
|
1081
|
+
if axis is None:
|
|
1082
|
+
axis = list(range(ndim))
|
|
1083
|
+
elif isinstance(axis, int):
|
|
1084
|
+
axis = [axis]
|
|
1085
|
+
axis = [a + ndim if a < 0 else a for a in axis]
|
|
1086
|
+
begin = [0] * ndim
|
|
1087
|
+
end = [0] * ndim
|
|
1088
|
+
strides = [1] * ndim
|
|
1089
|
+
for a in axis:
|
|
1090
|
+
strides[a] = -1
|
|
1091
|
+
all_ones_mask = [1] * ndim
|
|
1092
|
+
result = ov_opset.strided_slice(
|
|
1093
|
+
data=x_node,
|
|
1094
|
+
begin=begin,
|
|
1095
|
+
end=end,
|
|
1096
|
+
strides=strides,
|
|
1097
|
+
begin_mask=all_ones_mask,
|
|
1098
|
+
end_mask=all_ones_mask,
|
|
1099
|
+
)
|
|
1100
|
+
return OpenVINOKerasTensor(result.output(0))
|
|
1075
1101
|
|
|
1076
1102
|
|
|
1077
1103
|
def floor(x):
|
|
@@ -2572,6 +2598,12 @@ def negative(x):
|
|
|
2572
2598
|
return OpenVINOKerasTensor(ov_opset.negative(x).output(0))
|
|
2573
2599
|
|
|
2574
2600
|
|
|
2601
|
+
def nextafter(x1, x2):
|
|
2602
|
+
raise NotImplementedError(
|
|
2603
|
+
"`nextafter` is not supported with openvino backend"
|
|
2604
|
+
)
|
|
2605
|
+
|
|
2606
|
+
|
|
2575
2607
|
def square(x):
|
|
2576
2608
|
x = get_ov_output(x)
|
|
2577
2609
|
x_type = x.get_element_type()
|
|
@@ -3017,6 +3017,16 @@ def negative(x):
|
|
|
3017
3017
|
return tf.negative(x)
|
|
3018
3018
|
|
|
3019
3019
|
|
|
3020
|
+
def nextafter(x1, x2):
|
|
3021
|
+
x1 = convert_to_tensor(x1)
|
|
3022
|
+
x2 = convert_to_tensor(x2)
|
|
3023
|
+
|
|
3024
|
+
dtype = dtypes.result_type(x1.dtype, x2.dtype, float)
|
|
3025
|
+
x1 = tf.cast(x1, tf.float64)
|
|
3026
|
+
x2 = tf.cast(x2, tf.float64)
|
|
3027
|
+
return tf.cast(tf.math.nextafter(x1, x2), dtype)
|
|
3028
|
+
|
|
3029
|
+
|
|
3020
3030
|
@sparse.elementwise_unary
|
|
3021
3031
|
def square(x):
|
|
3022
3032
|
x = convert_to_tensor(x)
|
keras/src/backend/torch/numpy.py
CHANGED
|
@@ -1793,6 +1793,16 @@ def negative(x):
|
|
|
1793
1793
|
return torch.negative(x)
|
|
1794
1794
|
|
|
1795
1795
|
|
|
1796
|
+
def nextafter(x1, x2):
|
|
1797
|
+
x1 = convert_to_tensor(x1)
|
|
1798
|
+
x2 = convert_to_tensor(x2)
|
|
1799
|
+
|
|
1800
|
+
dtype = dtypes.result_type(x1.dtype, x2.dtype, float)
|
|
1801
|
+
x1 = cast(x1, torch.float64)
|
|
1802
|
+
x2 = cast(x2, torch.float64)
|
|
1803
|
+
return cast(torch.nextafter(x1, x2), dtype)
|
|
1804
|
+
|
|
1805
|
+
|
|
1796
1806
|
def square(x):
|
|
1797
1807
|
x = convert_to_tensor(x)
|
|
1798
1808
|
if standardize_dtype(x.dtype) == "bool":
|
keras/src/ops/image.py
CHANGED
|
@@ -565,6 +565,8 @@ class ExtractPatches(Operation):
|
|
|
565
565
|
if isinstance(size, int):
|
|
566
566
|
size = (size, size)
|
|
567
567
|
self.size = size
|
|
568
|
+
if strides is None:
|
|
569
|
+
strides = size
|
|
568
570
|
self.strides = strides
|
|
569
571
|
self.dilation_rate = dilation_rate
|
|
570
572
|
self.padding = padding
|
|
@@ -583,8 +585,6 @@ class ExtractPatches(Operation):
|
|
|
583
585
|
def compute_output_spec(self, images):
|
|
584
586
|
images_shape = list(images.shape)
|
|
585
587
|
original_ndim = len(images_shape)
|
|
586
|
-
if not self.strides:
|
|
587
|
-
strides = (self.size[0], self.size[1])
|
|
588
588
|
if self.data_format == "channels_last":
|
|
589
589
|
channels_in = images_shape[-1]
|
|
590
590
|
else:
|
|
@@ -597,7 +597,7 @@ class ExtractPatches(Operation):
|
|
|
597
597
|
images_shape,
|
|
598
598
|
filters,
|
|
599
599
|
kernel_size,
|
|
600
|
-
strides=strides,
|
|
600
|
+
strides=self.strides,
|
|
601
601
|
padding=self.padding,
|
|
602
602
|
data_format=self.data_format,
|
|
603
603
|
dilation_rate=self.dilation_rate,
|
keras/src/ops/numpy.py
CHANGED
|
@@ -7104,6 +7104,49 @@ def negative(x):
|
|
|
7104
7104
|
return backend.numpy.negative(x)
|
|
7105
7105
|
|
|
7106
7106
|
|
|
7107
|
+
class Nextafter(Operation):
|
|
7108
|
+
def call(self, x1, x2):
|
|
7109
|
+
return backend.numpy.nextafter(x1, x2)
|
|
7110
|
+
|
|
7111
|
+
def compute_output_spec(self, x1, x2):
|
|
7112
|
+
x1_shape = getattr(x1, "shape", [])
|
|
7113
|
+
x2_shape = getattr(x2, "shape", [])
|
|
7114
|
+
output_shape = broadcast_shapes(x1_shape, x2_shape)
|
|
7115
|
+
|
|
7116
|
+
x1_type = backend.standardize_dtype(getattr(x1, "dtype", type(x1)))
|
|
7117
|
+
x2_type = backend.standardize_dtype(getattr(x2, "dtype", type(x2)))
|
|
7118
|
+
dtype = dtypes.result_type(x1_type, x2_type, float)
|
|
7119
|
+
return KerasTensor(output_shape, dtype=dtype)
|
|
7120
|
+
|
|
7121
|
+
|
|
7122
|
+
@keras_export(["keras.ops.nextafter", "keras.ops.numpy.nextafter"])
|
|
7123
|
+
def nextafter(x1, x2):
|
|
7124
|
+
"""
|
|
7125
|
+
Return the next representable floating-point value after `x1` towards `x2`.
|
|
7126
|
+
|
|
7127
|
+
This function computes the next floating-point value
|
|
7128
|
+
following `x1` in the direction of `x2`, element-wise.
|
|
7129
|
+
|
|
7130
|
+
Args:
|
|
7131
|
+
x1: Input tensor whose values will be moved to the next
|
|
7132
|
+
representable floating-point value.
|
|
7133
|
+
x2: Input tensor indicating the direction toward which
|
|
7134
|
+
`x1` is moved.
|
|
7135
|
+
|
|
7136
|
+
Returns:
|
|
7137
|
+
Output tensor
|
|
7138
|
+
|
|
7139
|
+
Example:
|
|
7140
|
+
>>> x1 = keras.ops.convert_to_tensor([1.0, 1.0])
|
|
7141
|
+
>>> x2 = keras.ops.convert_to_tensor([2.0, 0.0])
|
|
7142
|
+
>>> keras.ops.nextafter(x1, x2)
|
|
7143
|
+
array([1.0000001, 0.99999994], dtype=float32)
|
|
7144
|
+
"""
|
|
7145
|
+
if any_symbolic_tensors((x1, x2)):
|
|
7146
|
+
return Nextafter().symbolic_call(x1, x2)
|
|
7147
|
+
return backend.numpy.nextafter(x1, x2)
|
|
7148
|
+
|
|
7149
|
+
|
|
7107
7150
|
class Square(Operation):
|
|
7108
7151
|
def call(self, x):
|
|
7109
7152
|
return backend.numpy.square(x)
|
keras/src/saving/file_editor.py
CHANGED
|
@@ -455,6 +455,9 @@ class KerasFileEditor:
|
|
|
455
455
|
def _extract_weights_from_store(self, data, metadata=None, inner_path=""):
|
|
456
456
|
metadata = metadata or {}
|
|
457
457
|
|
|
458
|
+
# ------------------------------------------------------
|
|
459
|
+
# Collect metadata for this HDF5 group
|
|
460
|
+
# ------------------------------------------------------
|
|
458
461
|
object_metadata = {}
|
|
459
462
|
for k, v in data.attrs.items():
|
|
460
463
|
object_metadata[k] = v
|
|
@@ -462,26 +465,98 @@ class KerasFileEditor:
|
|
|
462
465
|
metadata[inner_path] = object_metadata
|
|
463
466
|
|
|
464
467
|
result = collections.OrderedDict()
|
|
468
|
+
|
|
469
|
+
# ------------------------------------------------------
|
|
470
|
+
# Iterate over all keys in this HDF5 group
|
|
471
|
+
# ------------------------------------------------------
|
|
465
472
|
for key in data.keys():
|
|
466
|
-
|
|
473
|
+
# IMPORTANT:
|
|
474
|
+
# Never mutate inner_path; use local variable.
|
|
475
|
+
current_inner_path = f"{inner_path}/{key}"
|
|
467
476
|
value = data[key]
|
|
477
|
+
|
|
478
|
+
# ------------------------------------------------------
|
|
479
|
+
# CASE 1 — HDF5 GROUP → RECURSE
|
|
480
|
+
# ------------------------------------------------------
|
|
468
481
|
if isinstance(value, h5py.Group):
|
|
482
|
+
# Skip empty groups
|
|
469
483
|
if len(value) == 0:
|
|
470
484
|
continue
|
|
485
|
+
|
|
486
|
+
# Skip empty "vars" groups
|
|
471
487
|
if "vars" in value.keys() and len(value["vars"]) == 0:
|
|
472
488
|
continue
|
|
473
489
|
|
|
474
|
-
|
|
490
|
+
# Recurse into "vars" subgroup when present
|
|
475
491
|
if "vars" in value.keys():
|
|
476
492
|
result[key], metadata = self._extract_weights_from_store(
|
|
477
|
-
value["vars"],
|
|
493
|
+
value["vars"],
|
|
494
|
+
metadata=metadata,
|
|
495
|
+
inner_path=current_inner_path,
|
|
478
496
|
)
|
|
479
497
|
else:
|
|
498
|
+
# Recurse normally
|
|
480
499
|
result[key], metadata = self._extract_weights_from_store(
|
|
481
|
-
value,
|
|
500
|
+
value,
|
|
501
|
+
metadata=metadata,
|
|
502
|
+
inner_path=current_inner_path,
|
|
482
503
|
)
|
|
483
|
-
|
|
484
|
-
|
|
504
|
+
|
|
505
|
+
continue # finished processing this key
|
|
506
|
+
|
|
507
|
+
# ------------------------------------------------------
|
|
508
|
+
# CASE 2 — HDF5 DATASET → SAFE LOADING
|
|
509
|
+
# ------------------------------------------------------
|
|
510
|
+
|
|
511
|
+
# Skip any objects that are not proper datasets
|
|
512
|
+
if not hasattr(value, "shape") or not hasattr(value, "dtype"):
|
|
513
|
+
continue
|
|
514
|
+
|
|
515
|
+
shape = value.shape
|
|
516
|
+
dtype = value.dtype
|
|
517
|
+
|
|
518
|
+
# ------------------------------------------------------
|
|
519
|
+
# Validate SHAPE (avoid malformed / malicious metadata)
|
|
520
|
+
# ------------------------------------------------------
|
|
521
|
+
|
|
522
|
+
# No negative dimensions
|
|
523
|
+
if any(dim < 0 for dim in shape):
|
|
524
|
+
raise ValueError(
|
|
525
|
+
"Malformed HDF5 dataset shape encountered in .keras file; "
|
|
526
|
+
"negative dimension detected."
|
|
527
|
+
)
|
|
528
|
+
|
|
529
|
+
# Prevent absurdly high-rank tensors
|
|
530
|
+
if len(shape) > 64:
|
|
531
|
+
raise ValueError(
|
|
532
|
+
"Malformed HDF5 dataset shape encountered in .keras file; "
|
|
533
|
+
"tensor rank exceeds safety limit."
|
|
534
|
+
)
|
|
535
|
+
|
|
536
|
+
# Safe product computation (Python int is unbounded)
|
|
537
|
+
num_elems = int(np.prod(shape))
|
|
538
|
+
|
|
539
|
+
# ------------------------------------------------------
|
|
540
|
+
# Validate TOTAL memory size
|
|
541
|
+
# ------------------------------------------------------
|
|
542
|
+
MAX_BYTES = 1 << 32 # 4 GiB
|
|
543
|
+
|
|
544
|
+
size_bytes = num_elems * dtype.itemsize
|
|
545
|
+
|
|
546
|
+
if size_bytes > MAX_BYTES:
|
|
547
|
+
raise ValueError(
|
|
548
|
+
f"HDF5 dataset too large to load safely "
|
|
549
|
+
f"({size_bytes} bytes; limit is {MAX_BYTES})."
|
|
550
|
+
)
|
|
551
|
+
|
|
552
|
+
# ------------------------------------------------------
|
|
553
|
+
# SAFE — load dataset (guaranteed ≤ 4 GiB)
|
|
554
|
+
# ------------------------------------------------------
|
|
555
|
+
result[key] = value[()]
|
|
556
|
+
|
|
557
|
+
# ------------------------------------------------------
|
|
558
|
+
# Return final tree and metadata
|
|
559
|
+
# ------------------------------------------------------
|
|
485
560
|
return result, metadata
|
|
486
561
|
|
|
487
562
|
def _generate_filepath_info(self, rich_style=False):
|
keras/src/version.py
CHANGED
{keras_nightly-3.14.0.dev2025122704.dist-info → keras_nightly-3.14.0.dev2026010104.dist-info}/RECORD
RENAMED
|
@@ -45,11 +45,11 @@ keras/_tf_keras/keras/losses/__init__.py,sha256=xBc_KOtSLwp3h3CKQ0EnCuIy-Bsak2SP
|
|
|
45
45
|
keras/_tf_keras/keras/metrics/__init__.py,sha256=_wF31PTvua5ahF9JEW4Hx1UVNjVCLqVI8J5JNrZCBf8,6546
|
|
46
46
|
keras/_tf_keras/keras/mixed_precision/__init__.py,sha256=AM51CzHqzcY75tqdpQiuVcTRUEpUzBqeb-EfLeSDSV8,727
|
|
47
47
|
keras/_tf_keras/keras/models/__init__.py,sha256=83pyA0pzytqin8JLV6FEbPreCb-V64ToebxFGrHsVdQ,501
|
|
48
|
-
keras/_tf_keras/keras/ops/__init__.py,sha256=
|
|
48
|
+
keras/_tf_keras/keras/ops/__init__.py,sha256=7d0c6H8jwNa0blmt29-IEeDfPgMjjey06ox0MzWE-yU,15526
|
|
49
49
|
keras/_tf_keras/keras/ops/image/__init__.py,sha256=oM_PLh5Jk9OGfi1bbJcfWkjoq0Ye5JQG9a7v_KzDfoc,1034
|
|
50
50
|
keras/_tf_keras/keras/ops/linalg/__init__.py,sha256=0ab6icK3yuIm4khSfAksGRFLEAJhaOu6gGgarau4iEQ,822
|
|
51
51
|
keras/_tf_keras/keras/ops/nn/__init__.py,sha256=2eD8IlkfBrsmJjHpzsxMM3_058oGeZVgohdBd27iDnI,2992
|
|
52
|
-
keras/_tf_keras/keras/ops/numpy/__init__.py,sha256=
|
|
52
|
+
keras/_tf_keras/keras/ops/numpy/__init__.py,sha256=Q169WrV_QiEUts3bl6x4Gt02jsLgr542INWPP3EfOZQ,9588
|
|
53
53
|
keras/_tf_keras/keras/optimizers/__init__.py,sha256=1fx0vEB-oGu-9dumxoIvX4qVHdgJvf74OLyYoBkE2y0,1267
|
|
54
54
|
keras/_tf_keras/keras/optimizers/legacy/__init__.py,sha256=uIMQESCV80Q0FY-9ikQUjXYPyZqmTfAM3dfohQ5DzYs,516
|
|
55
55
|
keras/_tf_keras/keras/optimizers/schedules/__init__.py,sha256=pQF3rQiAPuUSTUdflTr-fpL77oyGIv9xzGdjae3M3kw,1120
|
|
@@ -111,11 +111,11 @@ keras/losses/__init__.py,sha256=VIXBHQFNdLUPZ7JuwtIKj_4E-xf2yvNyrmdklvjr_xM,3667
|
|
|
111
111
|
keras/metrics/__init__.py,sha256=qeEwtqpSCAaCr8BMUv1eVaqJl2Zb83OB5K0BG3JB0nI,6245
|
|
112
112
|
keras/mixed_precision/__init__.py,sha256=AM51CzHqzcY75tqdpQiuVcTRUEpUzBqeb-EfLeSDSV8,727
|
|
113
113
|
keras/models/__init__.py,sha256=83pyA0pzytqin8JLV6FEbPreCb-V64ToebxFGrHsVdQ,501
|
|
114
|
-
keras/ops/__init__.py,sha256=
|
|
114
|
+
keras/ops/__init__.py,sha256=7d0c6H8jwNa0blmt29-IEeDfPgMjjey06ox0MzWE-yU,15526
|
|
115
115
|
keras/ops/image/__init__.py,sha256=oM_PLh5Jk9OGfi1bbJcfWkjoq0Ye5JQG9a7v_KzDfoc,1034
|
|
116
116
|
keras/ops/linalg/__init__.py,sha256=0ab6icK3yuIm4khSfAksGRFLEAJhaOu6gGgarau4iEQ,822
|
|
117
117
|
keras/ops/nn/__init__.py,sha256=2eD8IlkfBrsmJjHpzsxMM3_058oGeZVgohdBd27iDnI,2992
|
|
118
|
-
keras/ops/numpy/__init__.py,sha256=
|
|
118
|
+
keras/ops/numpy/__init__.py,sha256=Q169WrV_QiEUts3bl6x4Gt02jsLgr542INWPP3EfOZQ,9588
|
|
119
119
|
keras/optimizers/__init__.py,sha256=1fx0vEB-oGu-9dumxoIvX4qVHdgJvf74OLyYoBkE2y0,1267
|
|
120
120
|
keras/optimizers/legacy/__init__.py,sha256=uIMQESCV80Q0FY-9ikQUjXYPyZqmTfAM3dfohQ5DzYs,516
|
|
121
121
|
keras/optimizers/schedules/__init__.py,sha256=pQF3rQiAPuUSTUdflTr-fpL77oyGIv9xzGdjae3M3kw,1120
|
|
@@ -128,7 +128,7 @@ keras/regularizers/__init__.py,sha256=542Shphw7W8h4Dyf2rmqMKUECVZ8IVBvN9g1LWhz-b
|
|
|
128
128
|
keras/saving/__init__.py,sha256=KvL2GZxjvgFgEhvEnkvqjIR9JSNHKz-NWZacXajsjLI,1298
|
|
129
129
|
keras/src/__init__.py,sha256=Gi4S7EiCMkE03PbdGNpFdaUYySWDs_FcAJ8Taz9Y1BE,684
|
|
130
130
|
keras/src/api_export.py,sha256=gXOkBOnmscV013WAc75lc4Up01-Kkg9EylIAT_QWctg,1173
|
|
131
|
-
keras/src/version.py,sha256=
|
|
131
|
+
keras/src/version.py,sha256=N0ASH1QtgbgwTXyqGB8RDSrVmB7O5POnjkU24zM5ho0,204
|
|
132
132
|
keras/src/activations/__init__.py,sha256=0nL3IFDB9unlrMz8ninKOWo-uCHasTUpTo1tXZb2u44,4433
|
|
133
133
|
keras/src/activations/activations.py,sha256=mogPggtp4CGldI3VOPNmesRxp6EbiR1_i4KLGaVwzL8,17614
|
|
134
134
|
keras/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -171,7 +171,7 @@ keras/src/backend/jax/layer.py,sha256=o6CicT06udwamTRQIjNSDLZLyYHFzBXNbxewXgWe0i
|
|
|
171
171
|
keras/src/backend/jax/linalg.py,sha256=LDaLZYz49ChE2kJR3YpaM9xuwusvd3krV7nNAAazTWA,2642
|
|
172
172
|
keras/src/backend/jax/math.py,sha256=1IEDpdoF8e5ltu3D4wbDQuihzvJHhMXz8W9Z_E-eJqU,9391
|
|
173
173
|
keras/src/backend/jax/nn.py,sha256=mQAKxZMedpv6H4GSU_ofmWKpdCbLukJA9Ncx3kfRuVc,59605
|
|
174
|
-
keras/src/backend/jax/numpy.py,sha256
|
|
174
|
+
keras/src/backend/jax/numpy.py,sha256=SMa6dH1n7v04SsnEkevCWBqmzj7Ed8TmBASOSrEQIMM,38619
|
|
175
175
|
keras/src/backend/jax/optimizer.py,sha256=5DeXQHcYmUI6F9i1m1VHn3sBt4LEStOeBXnKdESevLM,4134
|
|
176
176
|
keras/src/backend/jax/random.py,sha256=Uk2huGIk_dlzMrx5eDVrrr2TeCEMitn2vr4yzA0NXjs,3594
|
|
177
177
|
keras/src/backend/jax/rnn.py,sha256=Ycq0qfLY4M4jhltvztpLQyywjEM17T7CZQFh4hhHOUE,7767
|
|
@@ -186,7 +186,7 @@ keras/src/backend/numpy/layer.py,sha256=dTk7W7ql7vRgll7JbOXK5PlIhQw5VHdpSjKciHd8
|
|
|
186
186
|
keras/src/backend/numpy/linalg.py,sha256=uzLTxEyuX_gDcnoA5Q59GdTg33py0WooKK5T6T9Td6c,2543
|
|
187
187
|
keras/src/backend/numpy/math.py,sha256=HdkEA5ro7dtQBTP78GFIgqTFLgNQ49PXHhqI1vLRGfo,10169
|
|
188
188
|
keras/src/backend/numpy/nn.py,sha256=P9JAnTlwSTI7bVv8WIv1pDQJHpjML_WJ0RsJWy-LJMc,46200
|
|
189
|
-
keras/src/backend/numpy/numpy.py,sha256=
|
|
189
|
+
keras/src/backend/numpy/numpy.py,sha256=e-083c_hHLI9FwqV0bpmS8n7s7HP5QNDP59sJF7UwRg,37651
|
|
190
190
|
keras/src/backend/numpy/random.py,sha256=wx2nE75q7L2cBMjtQlQx8yKMj4Ie3puFMDQsbrZO8SA,3961
|
|
191
191
|
keras/src/backend/numpy/rnn.py,sha256=thOsMung1qR3lQsR4_D6hqKMFollQgrB0KwsJLk4BMY,7867
|
|
192
192
|
keras/src/backend/numpy/trainer.py,sha256=MzWr8_LLHa1P6fxdUWirGw_lQwHGF_vkZ7RUGLUzjUs,11126
|
|
@@ -198,7 +198,7 @@ keras/src/backend/openvino/layer.py,sha256=5RdvaH1yOyPAphjKiuQAK1H_yZFYKE1Hp7c5b
|
|
|
198
198
|
keras/src/backend/openvino/linalg.py,sha256=L6a4MFGND2wWzPVCh44cwuOgkcC4wJTo8Xy3HwW04lg,1614
|
|
199
199
|
keras/src/backend/openvino/math.py,sha256=qw9kX2sJ2qr0dBJF12Ey0E2GcwixPUqoev6UcNra4NI,3944
|
|
200
200
|
keras/src/backend/openvino/nn.py,sha256=zULPxdwVO7JDZUUtsuoEEPCLQ09ew8z8T6G_i_NEqrM,23741
|
|
201
|
-
keras/src/backend/openvino/numpy.py,sha256=
|
|
201
|
+
keras/src/backend/openvino/numpy.py,sha256=4VMuzxuCd2ig5QA9npSfn47bHxVAmWK920mOEvd9y-8,97883
|
|
202
202
|
keras/src/backend/openvino/random.py,sha256=4hRUtIP6qJxO3Qy9uH1x6jSuJna3nWPdUf4x2QU8-ew,5575
|
|
203
203
|
keras/src/backend/openvino/rnn.py,sha256=ErmuZLPSgG9qU-NfYPPvBZ6Ysy8k-fA4g19Vhqq7OVQ,866
|
|
204
204
|
keras/src/backend/openvino/trainer.py,sha256=bMmtSALqydqdS6ke-5sYW5fgxZDshDH810p_C0xCRTg,9087
|
|
@@ -211,7 +211,7 @@ keras/src/backend/tensorflow/layer.py,sha256=69d40LwL4HhKRsCjj1VRpjfrQXXF8VV3vh0
|
|
|
211
211
|
keras/src/backend/tensorflow/linalg.py,sha256=_lZVfdY1tFvrN7xwbt3INGoTR0yC5v-kI1Q0XppVibY,8773
|
|
212
212
|
keras/src/backend/tensorflow/math.py,sha256=zTu_7Ff6B2Ro862z_xH0OCmIWbV74DjsO5UnfjYuOUQ,12370
|
|
213
213
|
keras/src/backend/tensorflow/nn.py,sha256=6vtZHzUED6_blUPE1Tnc3GAxPpJ2ebxoaiMn80tTL9k,51328
|
|
214
|
-
keras/src/backend/tensorflow/numpy.py,sha256=
|
|
214
|
+
keras/src/backend/tensorflow/numpy.py,sha256=C-dnf4O8ES8uqa_yV0ThX6B6PXeeQrYtnP2-GORG5UU,104426
|
|
215
215
|
keras/src/backend/tensorflow/optimizer.py,sha256=kFlyEOnGjEYdLpd8mpwhUeku78__xBfZbbrDWpJrq60,9307
|
|
216
216
|
keras/src/backend/tensorflow/random.py,sha256=iO8V_soaDXZm9ewyAVbjudhsMj08C348c9Bz64nxXC4,6475
|
|
217
217
|
keras/src/backend/tensorflow/rnn.py,sha256=99EJqbPdWddmG14zyjjhUZfU5zo9ObmslF_Mak7EmAs,34602
|
|
@@ -227,7 +227,7 @@ keras/src/backend/torch/layer.py,sha256=htECdpv9ioHWM8_zqQkEdxgDsgLu8XJi5yXgnLl-
|
|
|
227
227
|
keras/src/backend/torch/linalg.py,sha256=wgPCfnscp5HOBmX9_-m-57lzxs1ttLNzmHqj2VYYq7k,2108
|
|
228
228
|
keras/src/backend/torch/math.py,sha256=g-ElDii2Y_o1-t6BAu2nbS7JH-aPqVS5Fqds8aYzIlg,14324
|
|
229
229
|
keras/src/backend/torch/nn.py,sha256=zmEzXEuwD7fVRDm145zsxzUDmqNmRgZS4LmeIx4Nbus,37498
|
|
230
|
-
keras/src/backend/torch/numpy.py,sha256=
|
|
230
|
+
keras/src/backend/torch/numpy.py,sha256=Le-hZwyQ7cOc7jH9rJl3MiucxImDvV3q1YF7aPgKHtY,57355
|
|
231
231
|
keras/src/backend/torch/random.py,sha256=YhLfC7qkGpzlU_i6gGPVormo3BMSo7OUA3TC3GCehrA,8292
|
|
232
232
|
keras/src/backend/torch/rnn.py,sha256=J0vg7ikxBiv1FzEavgwT8IVCs0ceBcEv5LYyM5C2suA,25545
|
|
233
233
|
keras/src/backend/torch/trainer.py,sha256=dcikz1c5O0FHNzRKSi6WhIHsHfLV2HDlrXPElSd1cgE,17985
|
|
@@ -499,12 +499,12 @@ keras/src/ops/__init__.py,sha256=aORlvnrqY_eQl0EFLWdpHsXHnQ6JLSw1qhwJMr-VXJ0,644
|
|
|
499
499
|
keras/src/ops/core.py,sha256=t06-MvptYb6ZVwmNj083JyUtzU4M6UTVXOT2vVHtKyU,42781
|
|
500
500
|
keras/src/ops/einops.py,sha256=-pxW0_AzDQNsR7t2TJrzvYXBJpmLYA3fJoO0U_U96PY,6268
|
|
501
501
|
keras/src/ops/function.py,sha256=QV9n1-xeTPDK_FJ3sjlHDWVH2sqDj96R6YQnJueMOlA,17821
|
|
502
|
-
keras/src/ops/image.py,sha256=
|
|
502
|
+
keras/src/ops/image.py,sha256=NAf68cwEmR2LJuPGF_N2mXFVUR1LjQLMFeq8rLKEtLw,66864
|
|
503
503
|
keras/src/ops/linalg.py,sha256=3V8S_cgNxZZCIFcFj-FBHTdRqWNbimDtumMvfoc0f30,26736
|
|
504
504
|
keras/src/ops/math.py,sha256=4qYMJ5qAPmeSyeF63YWoGbUkQt6f4_VX0enOChU4mXU,37233
|
|
505
505
|
keras/src/ops/nn.py,sha256=04gjHB2BWusy4tWm59EO5Ns1paJC5umDNGwNCKzaJWQ,104658
|
|
506
506
|
keras/src/ops/node.py,sha256=aJgn9D-GkteE--Bbt2cZ9JjVxb2W2uS1OWEKoeLsl3Y,5583
|
|
507
|
-
keras/src/ops/numpy.py,sha256=
|
|
507
|
+
keras/src/ops/numpy.py,sha256=1Oh4-is73XoFZZNmRkXMsw-WzhIHf2A77lHevE38Q8Y,254763
|
|
508
508
|
keras/src/ops/operation.py,sha256=A7sh9Hi6kZb7wkeMmhrDQIq770ofANXuP-Qg-kwCM3o,15485
|
|
509
509
|
keras/src/ops/operation_utils.py,sha256=C6eThl-haKzlDH0fC1rn5-P1P-pCfIfXs-fy-ADR534,14523
|
|
510
510
|
keras/src/ops/symbolic_arguments.py,sha256=MKwXxZYkyouD9BPmQ1uUNxILdcwPvTayAqXaUV3P3o4,1628
|
|
@@ -540,7 +540,7 @@ keras/src/random/seed_generator.py,sha256=Iyx_YbLSaYusmCm2rOOOiDNU57x9-sU-xDf8U_
|
|
|
540
540
|
keras/src/regularizers/__init__.py,sha256=GzK9FTKL2Xxd5H55GfG9gxDqt4eZoVHFWICgb2VW8qM,1731
|
|
541
541
|
keras/src/regularizers/regularizers.py,sha256=urXNmMGuqHT7lOmS-yQPl3At3Ny-37Xlo389ErCg84A,11799
|
|
542
542
|
keras/src/saving/__init__.py,sha256=vnrtfvnzW7Gwtxe5COhaMoEnVYB5iDe2YlqJ-DvqFIk,614
|
|
543
|
-
keras/src/saving/file_editor.py,sha256=
|
|
543
|
+
keras/src/saving/file_editor.py,sha256=tsUo9mQbMa8433tHTnOKWFhDeathYwDb0CeWcDTTTBQ,32089
|
|
544
544
|
keras/src/saving/keras_saveable.py,sha256=aGIt1ajtsaamfUq18LM6ql8JEoQzi3HwzJEuwQ9bmKE,1285
|
|
545
545
|
keras/src/saving/object_registration.py,sha256=OOO-7-SNfPoFkFsR_c5jzE6aSIDIlHlnMcm9IlI_Gbs,7357
|
|
546
546
|
keras/src/saving/saving_api.py,sha256=hYMr0g_4zboDHUA4Dop7PVSPsGB0FBN7d29W4RhNPNI,11655
|
|
@@ -614,7 +614,7 @@ keras/utils/bounding_boxes/__init__.py,sha256=jtvQll4u8ZY0Z96HwNhP1nxWEG9FM3gI-6
|
|
|
614
614
|
keras/utils/legacy/__init__.py,sha256=oSYZz6uS8UxSElRaaJYWJEoweJ4GAasZjnn7fNaOlog,342
|
|
615
615
|
keras/visualization/__init__.py,sha256=UKWmiy6sps4SWlmQi9WX8_Z53cPpLlphz2zIeHdwJpQ,722
|
|
616
616
|
keras/wrappers/__init__.py,sha256=QkS-O5K8qGS7C3sytF8MpmO6PasATpNVGF8qtb7Ojsw,407
|
|
617
|
-
keras_nightly-3.14.0.
|
|
618
|
-
keras_nightly-3.14.0.
|
|
619
|
-
keras_nightly-3.14.0.
|
|
620
|
-
keras_nightly-3.14.0.
|
|
617
|
+
keras_nightly-3.14.0.dev2026010104.dist-info/METADATA,sha256=ZtVvePb5VE48ZbOMhIKB2djeuwdw1pqrK4IQyJPJq_I,6339
|
|
618
|
+
keras_nightly-3.14.0.dev2026010104.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
619
|
+
keras_nightly-3.14.0.dev2026010104.dist-info/top_level.txt,sha256=ptcw_-QuGZ4ZDjMdwi_Z0clZm8QAqFdvzzFnDEOTs9o,6
|
|
620
|
+
keras_nightly-3.14.0.dev2026010104.dist-info/RECORD,,
|
{keras_nightly-3.14.0.dev2025122704.dist-info → keras_nightly-3.14.0.dev2026010104.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|