keras-nightly 3.12.0.dev2025082203__py3-none-any.whl → 3.12.0.dev2025082403__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.
@@ -195,6 +195,7 @@ from keras.src.ops.numpy import hanning as hanning
195
195
  from keras.src.ops.numpy import heaviside as heaviside
196
196
  from keras.src.ops.numpy import histogram as histogram
197
197
  from keras.src.ops.numpy import hstack as hstack
198
+ from keras.src.ops.numpy import hypot as hypot
198
199
  from keras.src.ops.numpy import identity as identity
199
200
  from keras.src.ops.numpy import imag as imag
200
201
  from keras.src.ops.numpy import inner as inner
@@ -83,6 +83,7 @@ from keras.src.ops.numpy import hanning as hanning
83
83
  from keras.src.ops.numpy import heaviside as heaviside
84
84
  from keras.src.ops.numpy import histogram as histogram
85
85
  from keras.src.ops.numpy import hstack as hstack
86
+ from keras.src.ops.numpy import hypot as hypot
86
87
  from keras.src.ops.numpy import identity as identity
87
88
  from keras.src.ops.numpy import imag as imag
88
89
  from keras.src.ops.numpy import inner as inner
keras/ops/__init__.py CHANGED
@@ -195,6 +195,7 @@ from keras.src.ops.numpy import hanning as hanning
195
195
  from keras.src.ops.numpy import heaviside as heaviside
196
196
  from keras.src.ops.numpy import histogram as histogram
197
197
  from keras.src.ops.numpy import hstack as hstack
198
+ from keras.src.ops.numpy import hypot as hypot
198
199
  from keras.src.ops.numpy import identity as identity
199
200
  from keras.src.ops.numpy import imag as imag
200
201
  from keras.src.ops.numpy import inner as inner
@@ -83,6 +83,7 @@ from keras.src.ops.numpy import hanning as hanning
83
83
  from keras.src.ops.numpy import heaviside as heaviside
84
84
  from keras.src.ops.numpy import histogram as histogram
85
85
  from keras.src.ops.numpy import hstack as hstack
86
+ from keras.src.ops.numpy import hypot as hypot
86
87
  from keras.src.ops.numpy import identity as identity
87
88
  from keras.src.ops.numpy import imag as imag
88
89
  from keras.src.ops.numpy import inner as inner
@@ -244,6 +244,7 @@ BIT64_TO_BIT32_DTYPE = {
244
244
  "int64": "int32",
245
245
  "uint64": "uint32",
246
246
  "float64": "float32",
247
+ "complex128": "complex64",
247
248
  }
248
249
 
249
250
 
@@ -275,6 +276,10 @@ def _lattice_result_type(*args):
275
276
  precision = config.floatx()[-2:]
276
277
  if out_weak_type:
277
278
  out_dtype = _resolve_weak_type(out_dtype, precision=precision)
279
+
280
+ # Force to be 32-bit dtype when encountering 64-bit dtype.
281
+ # TODO(hongyu): Add a config to enable 64-bit dtypes.
282
+ out_dtype = BIT64_TO_BIT32_DTYPE.get(out_dtype, out_dtype)
278
283
  return out_dtype
279
284
 
280
285
 
@@ -58,6 +58,12 @@ def heaviside(x1, x2):
58
58
  return jnp.heaviside(x1, x2)
59
59
 
60
60
 
61
+ def hypot(x1, x2):
62
+ x1 = convert_to_tensor(x1)
63
+ x2 = convert_to_tensor(x2)
64
+ return jnp.hypot(x1, x2)
65
+
66
+
61
67
  def kaiser(x, beta):
62
68
  x = convert_to_tensor(x)
63
69
  return cast(jnp.kaiser(x, beta), config.floatx())
@@ -372,6 +372,9 @@ def bincount(x, weights=None, minlength=0, sparse=False):
372
372
  def bitwise_and(x, y):
373
373
  x = convert_to_tensor(x)
374
374
  y = convert_to_tensor(y)
375
+ dtype = dtypes.result_type(x.dtype, y.dtype)
376
+ x = x.astype(dtype)
377
+ y = y.astype(dtype)
375
378
  return np.bitwise_and(x, y)
376
379
 
377
380
 
@@ -387,12 +390,18 @@ def bitwise_not(x):
387
390
  def bitwise_or(x, y):
388
391
  x = convert_to_tensor(x)
389
392
  y = convert_to_tensor(y)
393
+ dtype = dtypes.result_type(x.dtype, y.dtype)
394
+ x = x.astype(dtype)
395
+ y = y.astype(dtype)
390
396
  return np.bitwise_or(x, y)
391
397
 
392
398
 
393
399
  def bitwise_xor(x, y):
394
400
  x = convert_to_tensor(x)
395
401
  y = convert_to_tensor(y)
402
+ dtype = dtypes.result_type(x.dtype, y.dtype)
403
+ x = x.astype(dtype)
404
+ y = y.astype(dtype)
396
405
  return np.bitwise_xor(x, y)
397
406
 
398
407
 
@@ -400,6 +409,9 @@ def bitwise_left_shift(x, y):
400
409
  x = convert_to_tensor(x)
401
410
  if not isinstance(y, int):
402
411
  y = convert_to_tensor(y)
412
+ dtype = dtypes.result_type(x.dtype, y.dtype)
413
+ x = x.astype(dtype)
414
+ y = y.astype(dtype)
403
415
  return np.left_shift(x, y)
404
416
 
405
417
 
@@ -411,6 +423,9 @@ def bitwise_right_shift(x, y):
411
423
  x = convert_to_tensor(x)
412
424
  if not isinstance(y, int):
413
425
  y = convert_to_tensor(y)
426
+ dtype = dtypes.result_type(x.dtype, y.dtype)
427
+ x = x.astype(dtype)
428
+ y = y.astype(dtype)
414
429
  return np.right_shift(x, y)
415
430
 
416
431
 
@@ -665,6 +680,19 @@ def hstack(xs):
665
680
  return np.hstack(xs)
666
681
 
667
682
 
683
+ def hypot(x1, x2):
684
+ x1 = convert_to_tensor(x1)
685
+ x2 = convert_to_tensor(x2)
686
+
687
+ dtype = dtypes.result_type(x1.dtype, x2.dtype)
688
+ if dtype in ["int8", "int16", "int32", "uint8", "uint16", "uint32"]:
689
+ dtype = config.floatx()
690
+ elif dtype in ["int64"]:
691
+ dtype = "float64"
692
+
693
+ return np.hypot(x1, x2).astype(dtype)
694
+
695
+
668
696
  def identity(n, dtype=None):
669
697
  dtype = dtype or config.floatx()
670
698
  return np.identity(n, dtype=dtype)
@@ -902,6 +902,10 @@ def hstack(xs):
902
902
  return OpenVINOKerasTensor(ov_opset.concat(elems, axis).output(0))
903
903
 
904
904
 
905
+ def hypot(x1, x2):
906
+ raise NotImplementedError("`hypot` is not supported with openvino backend")
907
+
908
+
905
909
  def identity(n, dtype=None):
906
910
  n = get_ov_output(n)
907
911
  dtype = Type.f32 if dtype is None else dtype
@@ -1559,6 +1559,28 @@ def hstack(xs):
1559
1559
  return tf.concat(xs, axis=1)
1560
1560
 
1561
1561
 
1562
+ def hypot(x1, x2):
1563
+ x1 = convert_to_tensor(x1)
1564
+ x2 = convert_to_tensor(x2)
1565
+
1566
+ dtype = dtypes.result_type(x1.dtype, x2.dtype)
1567
+ if dtype in ["int8", "int16", "int32", "uint8", "uint16", "uint32"]:
1568
+ dtype = config.floatx()
1569
+ elif dtype in ["int64"]:
1570
+ dtype = "float64"
1571
+
1572
+ x1 = tf.cast(x1, dtype)
1573
+ x2 = tf.cast(x2, dtype)
1574
+
1575
+ x1_abs = tf.abs(x1)
1576
+ x2_abs = tf.abs(x2)
1577
+ max_val = tf.maximum(x1_abs, x2_abs)
1578
+ min_val = tf.minimum(x1_abs, x2_abs)
1579
+
1580
+ ratio = tf.math.divide_no_nan(min_val, max_val)
1581
+ return max_val * tf.sqrt(1.0 + tf.square(ratio))
1582
+
1583
+
1562
1584
  def identity(n, dtype=None):
1563
1585
  return eye(N=n, M=n, dtype=dtype)
1564
1586
 
@@ -9,7 +9,6 @@ from keras.src.backend.torch.core import cast
9
9
  from keras.src.backend.torch.core import convert_to_tensor
10
10
  from keras.src.backend.torch.core import get_device
11
11
  from keras.src.backend.torch.numpy import expand_dims
12
- from keras.src.backend.torch.numpy import maximum
13
12
  from keras.src.backend.torch.numpy import where
14
13
  from keras.src.utils.argument_validation import standardize_tuple
15
14
 
@@ -668,7 +667,7 @@ def one_hot(x, num_classes, axis=-1, dtype=None, sparse=False):
668
667
  # manual handling for negatives in the input to one_hot by using max(x, 0).
669
668
  # The output will have some invalid results, so we set them back to 0 using
670
669
  # `where` afterwards.
671
- output = tnn.one_hot(maximum(x, 0), num_classes)
670
+ output = tnn.one_hot(torch.clamp(x, min=0), num_classes)
672
671
  output = where(expand_dims(x, axis=-1) >= 0, output, zero)
673
672
  output = convert_to_tensor(output, dtype=dtype)
674
673
  dims = output.dim()
@@ -854,6 +854,22 @@ def hstack(xs):
854
854
  return torch.hstack(xs)
855
855
 
856
856
 
857
+ def hypot(x1, x2):
858
+ x1 = convert_to_tensor(x1)
859
+ x2 = convert_to_tensor(x2)
860
+
861
+ dtype = dtypes.result_type(x1.dtype, x2.dtype)
862
+ if dtype in ["int8", "int16", "int32", "uint8", "uint16", "uint32"]:
863
+ dtype = config.floatx()
864
+ elif dtype == "int64":
865
+ dtype = "float64"
866
+
867
+ x1 = cast(x1, dtype)
868
+ x2 = cast(x2, dtype)
869
+
870
+ return torch.hypot(x1, x2)
871
+
872
+
857
873
  def identity(n, dtype=None):
858
874
  dtype = to_torch_dtype(dtype or config.floatx())
859
875
 
@@ -110,7 +110,9 @@ class MaxNorm(Constraint):
110
110
  w = backend.convert_to_tensor(w)
111
111
  norms = ops.sqrt(ops.sum(ops.square(w), axis=self.axis, keepdims=True))
112
112
  desired = ops.clip(norms, 0, self.max_value)
113
- return w * (desired / (backend.epsilon() + norms))
113
+ return ops.cast(w, norms.dtype) * (
114
+ desired / (backend.epsilon() + norms)
115
+ )
114
116
 
115
117
  def get_config(self):
116
118
  return {"max_value": self.max_value, "axis": self.axis}
@@ -122,7 +124,7 @@ class NonNeg(Constraint):
122
124
 
123
125
  def __call__(self, w):
124
126
  w = backend.convert_to_tensor(w)
125
- return w * ops.cast(ops.greater_equal(w, 0.0), dtype=w.dtype)
127
+ return ops.multiply(w, ops.greater_equal(w, 0.0))
126
128
 
127
129
 
128
130
  @keras_export(["keras.constraints.UnitNorm", "keras.constraints.unit_norm"])
@@ -148,10 +150,8 @@ class UnitNorm(Constraint):
148
150
 
149
151
  def __call__(self, w):
150
152
  w = backend.convert_to_tensor(w)
151
- return w / (
152
- backend.epsilon()
153
- + ops.sqrt(ops.sum(ops.square(w), axis=self.axis, keepdims=True))
154
- )
153
+ norms = ops.sqrt(ops.sum(ops.square(w), axis=self.axis, keepdims=True))
154
+ return ops.cast(w, norms.dtype) / (backend.epsilon() + norms)
155
155
 
156
156
  def get_config(self):
157
157
  return {"axis": self.axis}
@@ -202,7 +202,9 @@ class MinMaxNorm(Constraint):
202
202
  self.rate * ops.clip(norms, self.min_value, self.max_value)
203
203
  + (1 - self.rate) * norms
204
204
  )
205
- return w * (desired / (backend.epsilon() + norms))
205
+ return ops.cast(w, norms.dtype) * (
206
+ desired / (backend.epsilon() + norms)
207
+ )
206
208
 
207
209
  def get_config(self):
208
210
  return {
@@ -253,14 +253,18 @@ class STFT(Initializer):
253
253
  scaling = ops.sum(ops.abs(win))
254
254
 
255
255
  _fft_length = (fft_length - 1) * 2
256
- freq = (
257
- ops.reshape(ops.arange(fft_length, dtype=dtype), (1, 1, fft_length))
258
- / _fft_length
256
+ freq = ops.divide(
257
+ ops.reshape(
258
+ ops.arange(fft_length, dtype=dtype), (1, 1, fft_length)
259
+ ),
260
+ _fft_length,
259
261
  )
260
262
  time = ops.reshape(
261
263
  ops.arange(frame_length, dtype=dtype), (frame_length, 1, 1)
262
264
  )
263
- args = -2 * time * freq * ops.arccos(ops.cast(-1, dtype))
265
+ args = ops.multiply(ops.multiply(-2, time), freq) * ops.arccos(
266
+ ops.cast(-1, dtype)
267
+ )
264
268
 
265
269
  if self.side == "real":
266
270
  kernel = ops.cast(ops.cos(args), dtype)
@@ -268,7 +272,7 @@ class STFT(Initializer):
268
272
  kernel = ops.cast(ops.sin(args), dtype)
269
273
 
270
274
  if win is not None:
271
- kernel = kernel * win / scaling
275
+ kernel = ops.divide(ops.multiply(kernel, win), scaling)
272
276
  return kernel
273
277
 
274
278
  def get_config(self):
keras/src/ops/numpy.py CHANGED
@@ -3514,6 +3514,50 @@ def hstack(xs):
3514
3514
  return backend.numpy.hstack(xs)
3515
3515
 
3516
3516
 
3517
+ class Hypot(Operation):
3518
+ def call(self, x1, x2):
3519
+ return backend.numpy.hypot(x1, x2)
3520
+
3521
+ def compute_output_spec(self, x1, x2):
3522
+ dtype = dtypes.result_type(x1.dtype, x2.dtype)
3523
+ if dtype in ["int8", "int16", "int32", "uint8", "uint16", "uint32"]:
3524
+ dtype = backend.floatx()
3525
+ elif dtype == "int64":
3526
+ dtype = "float64"
3527
+ return KerasTensor(broadcast_shapes(x1.shape, x2.shape), dtype=dtype)
3528
+
3529
+
3530
+ @keras_export(["keras.ops.hypot", "keras.ops.numpy.hypot"])
3531
+ def hypot(x1, x2):
3532
+ """Element-wise hypotenuse of right triangles with legs `x1` and `x2`.
3533
+
3534
+ This is equivalent to computing `sqrt(x1**2 + x2**2)` element-wise,
3535
+ with shape determined by broadcasting.
3536
+
3537
+ Args:
3538
+ x1: A tensor, representing the first leg of the right triangle.
3539
+ x2: A tensor, representing the second leg of the right triangle.
3540
+
3541
+ Returns:
3542
+ A tensor with a shape determined by broadcasting `x1` and `x2`.
3543
+
3544
+ Example:
3545
+ >>> x1 = keras.ops.convert_to_tensor([3.0, 4.0, 5.0])
3546
+ >>> x2 = keras.ops.convert_to_tensor([4.0, 3.0, 12.0])
3547
+ >>> keras.ops.hypot(x1, x2)
3548
+ array([5., 5., 13.], dtype=float32)
3549
+
3550
+ >>> x1 = keras.ops.convert_to_tensor([[1, 2], [3, 4]])
3551
+ >>> x2 = keras.ops.convert_to_tensor([1, 1])
3552
+ >>> keras.ops.hypot(x1, x2)
3553
+ array([[1.41421356 2.23606798],
3554
+ [3.16227766 4.12310563]], dtype=float32)
3555
+ """
3556
+ if any_symbolic_tensors((x1, x2)):
3557
+ return Hypot().symbolic_call(x1, x2)
3558
+ return backend.numpy.hypot(x1, x2)
3559
+
3560
+
3517
3561
  @keras_export(["keras.ops.identity", "keras.ops.numpy.identity"])
3518
3562
  def identity(n, dtype=None):
3519
3563
  """Return the identity tensor.
@@ -692,9 +692,11 @@ class CosineDecay(LearningRateSchedule):
692
692
 
693
693
  def _decay_function(self, step, decay_steps, decay_from_lr, dtype):
694
694
  with ops.name_scope(self.name):
695
- completed_fraction = step / decay_steps
695
+ completed_fraction = ops.divide(step, decay_steps)
696
696
  pi = ops.array(math.pi, dtype=dtype)
697
- cosine_decayed = 0.5 * (1.0 + ops.cos(pi * completed_fraction))
697
+ cosine_decayed = 0.5 * (
698
+ 1.0 + ops.cos(ops.multiply(pi, completed_fraction))
699
+ )
698
700
  decayed = (1 - self.alpha) * cosine_decayed + self.alpha
699
701
  return ops.multiply(decay_from_lr, decayed)
700
702
 
@@ -866,10 +868,13 @@ class CosineDecayRestarts(LearningRateSchedule):
866
868
  / ops.log(t_mul)
867
869
  )
868
870
 
869
- sum_r = (1.0 - t_mul**i_restart) / (1.0 - t_mul)
870
- completed_fraction = (
871
- completed_fraction - sum_r
872
- ) / t_mul**i_restart
871
+ sum_r = ops.divide(
872
+ 1.0 - ops.power(t_mul, i_restart), (1.0 - t_mul)
873
+ )
874
+ completed_fraction = ops.divide(
875
+ ops.subtract(completed_fraction, sum_r),
876
+ ops.power(t_mul, i_restart),
877
+ )
873
878
 
874
879
  else:
875
880
  i_restart = ops.floor(completed_fraction)
@@ -883,18 +888,20 @@ class CosineDecayRestarts(LearningRateSchedule):
883
888
  lambda: compute_step(completed_fraction, geometric=True),
884
889
  )
885
890
 
886
- m_fac = m_mul**i_restart
891
+ m_fac = ops.power(m_mul, i_restart)
887
892
  cosine_decayed = (
888
893
  0.5
889
894
  * m_fac
890
895
  * (
891
896
  1.0
892
897
  + ops.cos(
893
- ops.array(math.pi, dtype=dtype) * completed_fraction
898
+ ops.multiply(
899
+ ops.array(math.pi, dtype=dtype), completed_fraction
900
+ )
894
901
  )
895
902
  )
896
903
  )
897
- decayed = (1 - alpha) * cosine_decayed + alpha
904
+ decayed = ops.add(ops.multiply((1 - alpha), cosine_decayed), alpha)
898
905
 
899
906
  return ops.multiply(initial_learning_rate, decayed)
900
907
 
keras/src/version.py CHANGED
@@ -1,7 +1,7 @@
1
1
  from keras.src.api_export import keras_export
2
2
 
3
3
  # Unique source of truth for the version number.
4
- __version__ = "3.12.0.dev2025082203"
4
+ __version__ = "3.12.0.dev2025082403"
5
5
 
6
6
 
7
7
  @keras_export("keras.version")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: keras-nightly
3
- Version: 3.12.0.dev2025082203
3
+ Version: 3.12.0.dev2025082403
4
4
  Summary: Multi-backend Keras
5
5
  Author-email: Keras team <keras-users@googlegroups.com>
6
6
  License: Apache License 2.0
@@ -44,11 +44,11 @@ keras/_tf_keras/keras/losses/__init__.py,sha256=xBc_KOtSLwp3h3CKQ0EnCuIy-Bsak2SP
44
44
  keras/_tf_keras/keras/metrics/__init__.py,sha256=_wF31PTvua5ahF9JEW4Hx1UVNjVCLqVI8J5JNrZCBf8,6546
45
45
  keras/_tf_keras/keras/mixed_precision/__init__.py,sha256=AM51CzHqzcY75tqdpQiuVcTRUEpUzBqeb-EfLeSDSV8,727
46
46
  keras/_tf_keras/keras/models/__init__.py,sha256=83pyA0pzytqin8JLV6FEbPreCb-V64ToebxFGrHsVdQ,501
47
- keras/_tf_keras/keras/ops/__init__.py,sha256=r8hyx1byY2WtOSP_n2lWsWdR50EIx3zEJp5Tk-5oUqo,14641
47
+ keras/_tf_keras/keras/ops/__init__.py,sha256=drXQiAS50FREMI6C58GvY-iRrfwEtREB-mFg6qXgEQ8,14688
48
48
  keras/_tf_keras/keras/ops/image/__init__.py,sha256=K57F1fBruHn6hacx9uQFWPYO1qbdNM40VR3djvKIRq4,961
49
49
  keras/_tf_keras/keras/ops/linalg/__init__.py,sha256=cc8apE35y2X8idUxY-kc7qYCUm3SAvY2b_StSjRB7Ro,778
50
50
  keras/_tf_keras/keras/ops/nn/__init__.py,sha256=DAloStL366PAGID_tqeSKnConPl5aB4dcyNVm8bWnUU,2802
51
- keras/_tf_keras/keras/ops/numpy/__init__.py,sha256=owj7NQpaUMGCMr7vWDRx1SkqVhGuaLNxTK0fFfcX_mg,8937
51
+ keras/_tf_keras/keras/ops/numpy/__init__.py,sha256=vs0gGEmIFVAbtw5bk-V-n3b9SqtXhBczf2vqHQUUgTY,8984
52
52
  keras/_tf_keras/keras/optimizers/__init__.py,sha256=1fx0vEB-oGu-9dumxoIvX4qVHdgJvf74OLyYoBkE2y0,1267
53
53
  keras/_tf_keras/keras/optimizers/legacy/__init__.py,sha256=uIMQESCV80Q0FY-9ikQUjXYPyZqmTfAM3dfohQ5DzYs,516
54
54
  keras/_tf_keras/keras/optimizers/schedules/__init__.py,sha256=pQF3rQiAPuUSTUdflTr-fpL77oyGIv9xzGdjae3M3kw,1120
@@ -109,11 +109,11 @@ keras/losses/__init__.py,sha256=VIXBHQFNdLUPZ7JuwtIKj_4E-xf2yvNyrmdklvjr_xM,3667
109
109
  keras/metrics/__init__.py,sha256=qeEwtqpSCAaCr8BMUv1eVaqJl2Zb83OB5K0BG3JB0nI,6245
110
110
  keras/mixed_precision/__init__.py,sha256=AM51CzHqzcY75tqdpQiuVcTRUEpUzBqeb-EfLeSDSV8,727
111
111
  keras/models/__init__.py,sha256=83pyA0pzytqin8JLV6FEbPreCb-V64ToebxFGrHsVdQ,501
112
- keras/ops/__init__.py,sha256=r8hyx1byY2WtOSP_n2lWsWdR50EIx3zEJp5Tk-5oUqo,14641
112
+ keras/ops/__init__.py,sha256=drXQiAS50FREMI6C58GvY-iRrfwEtREB-mFg6qXgEQ8,14688
113
113
  keras/ops/image/__init__.py,sha256=K57F1fBruHn6hacx9uQFWPYO1qbdNM40VR3djvKIRq4,961
114
114
  keras/ops/linalg/__init__.py,sha256=cc8apE35y2X8idUxY-kc7qYCUm3SAvY2b_StSjRB7Ro,778
115
115
  keras/ops/nn/__init__.py,sha256=DAloStL366PAGID_tqeSKnConPl5aB4dcyNVm8bWnUU,2802
116
- keras/ops/numpy/__init__.py,sha256=owj7NQpaUMGCMr7vWDRx1SkqVhGuaLNxTK0fFfcX_mg,8937
116
+ keras/ops/numpy/__init__.py,sha256=vs0gGEmIFVAbtw5bk-V-n3b9SqtXhBczf2vqHQUUgTY,8984
117
117
  keras/optimizers/__init__.py,sha256=1fx0vEB-oGu-9dumxoIvX4qVHdgJvf74OLyYoBkE2y0,1267
118
118
  keras/optimizers/legacy/__init__.py,sha256=uIMQESCV80Q0FY-9ikQUjXYPyZqmTfAM3dfohQ5DzYs,516
119
119
  keras/optimizers/schedules/__init__.py,sha256=pQF3rQiAPuUSTUdflTr-fpL77oyGIv9xzGdjae3M3kw,1120
@@ -126,7 +126,7 @@ keras/regularizers/__init__.py,sha256=542Shphw7W8h4Dyf2rmqMKUECVZ8IVBvN9g1LWhz-b
126
126
  keras/saving/__init__.py,sha256=KvL2GZxjvgFgEhvEnkvqjIR9JSNHKz-NWZacXajsjLI,1298
127
127
  keras/src/__init__.py,sha256=Gi4S7EiCMkE03PbdGNpFdaUYySWDs_FcAJ8Taz9Y1BE,684
128
128
  keras/src/api_export.py,sha256=gXOkBOnmscV013WAc75lc4Up01-Kkg9EylIAT_QWctg,1173
129
- keras/src/version.py,sha256=LDhRxSJeuXz-IG4BxPLo-NVftDx2ljTnI3QCGoY0Lns,204
129
+ keras/src/version.py,sha256=ZPFkshIsMGW8mV4eylSRsY1girB0NOnKgecw-M4X26A,204
130
130
  keras/src/activations/__init__.py,sha256=0nL3IFDB9unlrMz8ninKOWo-uCHasTUpTo1tXZb2u44,4433
131
131
  keras/src/activations/activations.py,sha256=mogPggtp4CGldI3VOPNmesRxp6EbiR1_i4KLGaVwzL8,17614
132
132
  keras/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -150,7 +150,7 @@ keras/src/backend/__init__.py,sha256=b9xUJiQjfk-0_HzuCHpUn26u-_F_TDFHf31RduG2KAc
150
150
  keras/src/backend/config.py,sha256=EjQUu-PxQ4cm3vQpc6bzMAMVyw4HHznUQL0SIDhBohw,13147
151
151
  keras/src/backend/common/__init__.py,sha256=q_z_xvW-5LnR7n8cVKPCPWVefEFpHTqTRKnteLYTovk,595
152
152
  keras/src/backend/common/backend_utils.py,sha256=1ImjX--bLg9asaX6bTLmXfEoRmP6AKdPqF1QJT-MdJA,17493
153
- keras/src/backend/common/dtypes.py,sha256=VDoQ7ib7un4yEE0b3XRgi_MtNa-OaLbo6mQbIloppg8,10227
153
+ keras/src/backend/common/dtypes.py,sha256=zMUUJmfv8FIP7GWUtDEjYE76LFCeMfH72YqVHj9MD7Y,10443
154
154
  keras/src/backend/common/global_state.py,sha256=0xWtrdgw_VOgtzH3Xl9D0qJJYYeP1AaqE9u2GHXwcu0,3412
155
155
  keras/src/backend/common/keras_tensor.py,sha256=NszB5FiLaWTSXYAq6SnXbw7o7WIlssNPrHaZKHWqEY0,12293
156
156
  keras/src/backend/common/masking.py,sha256=JiC1uvxF_4psCMlaiawfAA_7UQEhF123xxFAnRyNg98,727
@@ -169,7 +169,7 @@ keras/src/backend/jax/layer.py,sha256=QxZeeiimUulsb3j1h3ncNxIoTYdKPO89s0kP49ZwF-
169
169
  keras/src/backend/jax/linalg.py,sha256=dtGHRYCvoVlRX0UwbDDdunA8Vp_mA3sdqoasX4P8SbQ,2532
170
170
  keras/src/backend/jax/math.py,sha256=1IEDpdoF8e5ltu3D4wbDQuihzvJHhMXz8W9Z_E-eJqU,9391
171
171
  keras/src/backend/jax/nn.py,sha256=R0a8-WB0YCl14FpRi2CQ45MFRvHCFtPTedk0Q1LfWYc,45935
172
- keras/src/backend/jax/numpy.py,sha256=ZUvPpqfwfDOw2n-zo156AhoWzuweCTs6g034A0tqpMs,36687
172
+ keras/src/backend/jax/numpy.py,sha256=UdvWXwarpXYMVtGB_beWS9s_5IgCi7OjoTRDFkH74rQ,36799
173
173
  keras/src/backend/jax/optimizer.py,sha256=JSKRkBteb7u-He5rtHwU6Wy5p8IjSsZf-IIL4-eQfsE,4102
174
174
  keras/src/backend/jax/random.py,sha256=Uk2huGIk_dlzMrx5eDVrrr2TeCEMitn2vr4yzA0NXjs,3594
175
175
  keras/src/backend/jax/rnn.py,sha256=Ycq0qfLY4M4jhltvztpLQyywjEM17T7CZQFh4hhHOUE,7767
@@ -184,7 +184,7 @@ keras/src/backend/numpy/layer.py,sha256=dTk7W7ql7vRgll7JbOXK5PlIhQw5VHdpSjKciHd8
184
184
  keras/src/backend/numpy/linalg.py,sha256=H8Bdu8LG6OlzXqx8uVxLmTKKE8s9lMoZHMsM2tW4e04,2417
185
185
  keras/src/backend/numpy/math.py,sha256=HdkEA5ro7dtQBTP78GFIgqTFLgNQ49PXHhqI1vLRGfo,10169
186
186
  keras/src/backend/numpy/nn.py,sha256=wTh4s2ZvL4PjPjz4VE6tMrFkRMaQiqpdBeNb6RY5kyE,36623
187
- keras/src/backend/numpy/numpy.py,sha256=4SqA4XSrKMoB8H-3YPreL_jryOOsAV8T4MvmJe_gUEw,34388
187
+ keras/src/backend/numpy/numpy.py,sha256=2EZaiCdGeWpdmOGtdu8ZbJF0oEXaCaXSJ40Us3GUey4,35235
188
188
  keras/src/backend/numpy/random.py,sha256=wx2nE75q7L2cBMjtQlQx8yKMj4Ie3puFMDQsbrZO8SA,3961
189
189
  keras/src/backend/numpy/rnn.py,sha256=thOsMung1qR3lQsR4_D6hqKMFollQgrB0KwsJLk4BMY,7867
190
190
  keras/src/backend/numpy/trainer.py,sha256=MzWr8_LLHa1P6fxdUWirGw_lQwHGF_vkZ7RUGLUzjUs,11126
@@ -196,7 +196,7 @@ keras/src/backend/openvino/layer.py,sha256=5RdvaH1yOyPAphjKiuQAK1H_yZFYKE1Hp7c5b
196
196
  keras/src/backend/openvino/linalg.py,sha256=Q09iv7fcE-xtNOop_hTG_RADkI0CHhjfrcOHqdWCmIY,1486
197
197
  keras/src/backend/openvino/math.py,sha256=qw9kX2sJ2qr0dBJF12Ey0E2GcwixPUqoev6UcNra4NI,3944
198
198
  keras/src/backend/openvino/nn.py,sha256=FUjNvBOcwP-A1BHffaCIZ-bl6na6xM_v91dcaTP4Q4U,15121
199
- keras/src/backend/openvino/numpy.py,sha256=NiLMumzSk2qDpDVMeWaMkSdBTJFj1BcDpsMF8_d7bag,64234
199
+ keras/src/backend/openvino/numpy.py,sha256=GrfuGWg5-rDawrtpTxeT1J7Cu10WC63j8qxTj_iwacI,64335
200
200
  keras/src/backend/openvino/random.py,sha256=bR7BYdfYHsBi5rYgCKmpFf310fa1q7JT48Z29XxhwmA,5851
201
201
  keras/src/backend/openvino/rnn.py,sha256=ErmuZLPSgG9qU-NfYPPvBZ6Ysy8k-fA4g19Vhqq7OVQ,866
202
202
  keras/src/backend/openvino/trainer.py,sha256=bMmtSALqydqdS6ke-5sYW5fgxZDshDH810p_C0xCRTg,9087
@@ -209,7 +209,7 @@ keras/src/backend/tensorflow/layer.py,sha256=iE6XYSZENEoTpNhoXrEOm7gnIOHwOjETZd_
209
209
  keras/src/backend/tensorflow/linalg.py,sha256=fpzxql1ycXIAks9AvS753aiSoaVqAuM6xbv671BulhQ,8038
210
210
  keras/src/backend/tensorflow/math.py,sha256=zTu_7Ff6B2Ro862z_xH0OCmIWbV74DjsO5UnfjYuOUQ,12370
211
211
  keras/src/backend/tensorflow/nn.py,sha256=oS7sngoA2C2SFfKQdYWvSZe7HCFfG29t4glbE6yv9CM,34616
212
- keras/src/backend/tensorflow/numpy.py,sha256=BWBku9PEiyx3NAcWyccHS_hqu4EzVmNTjrBtMPfSb5U,94514
212
+ keras/src/backend/tensorflow/numpy.py,sha256=Egtg_wsULToPi00oRLsr4RIh1b8_TykxAcmiqthGpb0,95103
213
213
  keras/src/backend/tensorflow/optimizer.py,sha256=kFlyEOnGjEYdLpd8mpwhUeku78__xBfZbbrDWpJrq60,9307
214
214
  keras/src/backend/tensorflow/random.py,sha256=iO8V_soaDXZm9ewyAVbjudhsMj08C348c9Bz64nxXC4,6475
215
215
  keras/src/backend/tensorflow/rnn.py,sha256=99EJqbPdWddmG14zyjjhUZfU5zo9ObmslF_Mak7EmAs,34602
@@ -224,8 +224,8 @@ keras/src/backend/torch/image.py,sha256=I1RY1MM99gufhxjQArkRXS9ZKf5Ki0uA-HG-D47s
224
224
  keras/src/backend/torch/layer.py,sha256=htECdpv9ioHWM8_zqQkEdxgDsgLu8XJi5yXgnLl-JFw,2084
225
225
  keras/src/backend/torch/linalg.py,sha256=2GUb107BufiHEK2zJ_fkFREo8Y8mo0OqUZLkwNNgOv4,1991
226
226
  keras/src/backend/torch/math.py,sha256=g-ElDii2Y_o1-t6BAu2nbS7JH-aPqVS5Fqds8aYzIlg,14324
227
- keras/src/backend/torch/nn.py,sha256=4ArkV-ePdFOu9zyT0BDPPWKe9bffskjoc5_gnTgoEik,33421
228
- keras/src/backend/torch/numpy.py,sha256=7YVyv30vJqvVLlFcDdniETkIPeOMZUeva1tU5hJjcfc,54612
227
+ keras/src/backend/torch/nn.py,sha256=8sqbeYU1siImRRyF4J-7JEE_CvcVeGnQ4D9aGijAyxo,33379
228
+ keras/src/backend/torch/numpy.py,sha256=2-5tEtGymfpZAzR9Z1ymziERJ2E4BbXryLmIuVQOJUE,54988
229
229
  keras/src/backend/torch/random.py,sha256=YhLfC7qkGpzlU_i6gGPVormo3BMSo7OUA3TC3GCehrA,8292
230
230
  keras/src/backend/torch/rnn.py,sha256=J0vg7ikxBiv1FzEavgwT8IVCs0ceBcEv5LYyM5C2suA,25545
231
231
  keras/src/backend/torch/trainer.py,sha256=TCnq0Tl9W0OUYesGGaSTWtGMnPiz-s6jrR5AC2F-TTg,17837
@@ -259,7 +259,7 @@ keras/src/callbacks/swap_ema_weights.py,sha256=JFp0E2BDTBWxVMdsGgVFuArfX3OaNKdtD
259
259
  keras/src/callbacks/tensorboard.py,sha256=-o8fpnC4ZJCrQmzYkfcj1xrTVupLi8g58MgtPlbEEgc,26968
260
260
  keras/src/callbacks/terminate_on_nan.py,sha256=WWrXVVa927N7-vwzegcORMFAP3rk4eVqPzL8XvfSaHw,669
261
261
  keras/src/constraints/__init__.py,sha256=3bDz814Sz2haFYT3puoLzv1Nqm9Uf2AwQqqamgqULPk,1715
262
- keras/src/constraints/constraints.py,sha256=bn9uGKb-GuOoEd3SGJfFqc7SDS0ziGUeggozc5Yna_0,7333
262
+ keras/src/constraints/constraints.py,sha256=GPxyDnepj9aV9Da4swJb_Cjbh-puYl24e35ZC9s6V6c,7422
263
263
  keras/src/datasets/__init__.py,sha256=ivEFJkqLxwU5BEYqWsWTd66kJ96YMKFKiYQGHm2CX68,383
264
264
  keras/src/datasets/boston_housing.py,sha256=MV8qnQjhZ6R1g5uqOAV5Xg2BIE41LXSNWzlmtDRnYFY,2644
265
265
  keras/src/datasets/california_housing.py,sha256=Z-X2DOWaykArurE6CLPv3noCxX3GKObWnqdLf7wFoGk,3850
@@ -283,7 +283,7 @@ keras/src/export/saved_model.py,sha256=bxcsVd87MXnw3ENKu_dbUc8JzPFqjOAPbLL0U5KqG
283
283
  keras/src/export/tf2onnx_lib.py,sha256=C9sFXIXclWYhsD-3ub9zT4qSKsZMtELNtPHijy5Rvrs,7172
284
284
  keras/src/export/tfsm_layer.py,sha256=1OSV8sg_ftrMQjyf_RBsNNC2sihkWCKml5Yv3M3C-NA,5998
285
285
  keras/src/initializers/__init__.py,sha256=tG7qxC2J0PDhO_L2W95sJXNIduL7F5lqHvUuJ7EIhXE,5662
286
- keras/src/initializers/constant_initializers.py,sha256=celz5tGkp2opqyuORykexWkMIQJe0AenJ9dVcGbf-ZY,9960
286
+ keras/src/initializers/constant_initializers.py,sha256=CvTyqbkcvvhwLlKYf8jqwlS-F2-Uj2c13si8Wjc4tmQ,10072
287
287
  keras/src/initializers/initializer.py,sha256=kNAyRA8CzBdtknT6ZUt5XIO2_Z9NzpN119CId7wT1Vg,2632
288
288
  keras/src/initializers/random_initializers.py,sha256=AuUeQ3YZGakDKTCs8njQLhozE6iWYHwP6-VstnEMOaQ,23631
289
289
  keras/src/layers/__init__.py,sha256=MDFk6ARHwWBvWO_kmxYhgn6DwBFYkZckR80ByuHPxOg,11491
@@ -489,7 +489,7 @@ keras/src/ops/linalg.py,sha256=1Z6my5X0e0uoTYPGJ0I0s2hiKbxYFmdyvoifBcZJEsc,22636
489
489
  keras/src/ops/math.py,sha256=4qYMJ5qAPmeSyeF63YWoGbUkQt6f4_VX0enOChU4mXU,37233
490
490
  keras/src/ops/nn.py,sha256=1BC-zmnpsUhqG5lSE4VvV5PsBf81wN0ZGg4kU-R8TJY,95259
491
491
  keras/src/ops/node.py,sha256=aJgn9D-GkteE--Bbt2cZ9JjVxb2W2uS1OWEKoeLsl3Y,5583
492
- keras/src/ops/numpy.py,sha256=3WD3PjIRdeXnyvA-JK-JruJdh8HbCf0fjouiKBZ7siY,234161
492
+ keras/src/ops/numpy.py,sha256=nHSZKxiXUFW9Yi2DS2ZQd8OS8YAgZ2zg1Tc4mkDPJBY,235686
493
493
  keras/src/ops/operation.py,sha256=Q-nOnXPrmt2daaC3X1png3Y86sFPDttrNEopPb6o3wM,12957
494
494
  keras/src/ops/operation_utils.py,sha256=BSarr5DZF5dr-URdXNzawwZlFx6R7VRjh6P2DGwgrT4,14457
495
495
  keras/src/ops/symbolic_arguments.py,sha256=MKwXxZYkyouD9BPmQ1uUNxILdcwPvTayAqXaUV3P3o4,1628
@@ -511,7 +511,7 @@ keras/src/optimizers/optimizer.py,sha256=cZtZwu42plSGjZBqoS6KThwJvWjEcPz9g97nZCS
511
511
  keras/src/optimizers/rmsprop.py,sha256=DCbmmViUnYCHMCO9YCtC2wGzPXxNPBJhkpwAmROOzf8,5775
512
512
  keras/src/optimizers/sgd.py,sha256=_3xanWOI0s2dISxEVT7i_tehsWakQQz2y480Iwkonas,4396
513
513
  keras/src/optimizers/schedules/__init__.py,sha256=vuUuHNTev8sD2-swsuq7zqyYbmaOhDyiIE6F3dGGSZU,546
514
- keras/src/optimizers/schedules/learning_rate_schedule.py,sha256=Oe3zk_IjeIN9TFNz1895RTN2rCk9uZY8iYbqFb9E06c,35507
514
+ keras/src/optimizers/schedules/learning_rate_schedule.py,sha256=Sqvd0SRHLMilsBsVXuolElJR6z5tBTphlGJ99Yq8axw,35784
515
515
  keras/src/quantizers/__init__.py,sha256=gxZQYNL-XyUYV1BQgC6V9qVH2MpqI-R1wqhM6o2Sywo,1967
516
516
  keras/src/quantizers/gptq.py,sha256=rbRi2qmZsvYG2APg6Sh0TysXSeTop_Ehp9wRqZOW12U,14509
517
517
  keras/src/quantizers/gptq_config.py,sha256=X6HTcYSE2m0m7s3btRwgWmJ09KkhULtWtabANW7vI9Y,6766
@@ -597,7 +597,7 @@ keras/utils/bounding_boxes/__init__.py,sha256=jtvQll4u8ZY0Z96HwNhP1nxWEG9FM3gI-6
597
597
  keras/utils/legacy/__init__.py,sha256=oSYZz6uS8UxSElRaaJYWJEoweJ4GAasZjnn7fNaOlog,342
598
598
  keras/visualization/__init__.py,sha256=UKWmiy6sps4SWlmQi9WX8_Z53cPpLlphz2zIeHdwJpQ,722
599
599
  keras/wrappers/__init__.py,sha256=QkS-O5K8qGS7C3sytF8MpmO6PasATpNVGF8qtb7Ojsw,407
600
- keras_nightly-3.12.0.dev2025082203.dist-info/METADATA,sha256=LrP6wSOdNf3s54O0JblT0GGXhxL8xRheEtd00iju9Bs,5970
601
- keras_nightly-3.12.0.dev2025082203.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
602
- keras_nightly-3.12.0.dev2025082203.dist-info/top_level.txt,sha256=ptcw_-QuGZ4ZDjMdwi_Z0clZm8QAqFdvzzFnDEOTs9o,6
603
- keras_nightly-3.12.0.dev2025082203.dist-info/RECORD,,
600
+ keras_nightly-3.12.0.dev2025082403.dist-info/METADATA,sha256=eIiBMDUGSJqr1nWmhjiRsPrnb4b67LoHc3JHP7O9McA,5970
601
+ keras_nightly-3.12.0.dev2025082403.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
602
+ keras_nightly-3.12.0.dev2025082403.dist-info/top_level.txt,sha256=ptcw_-QuGZ4ZDjMdwi_Z0clZm8QAqFdvzzFnDEOTs9o,6
603
+ keras_nightly-3.12.0.dev2025082403.dist-info/RECORD,,