keras-nightly 3.14.0.dev2026012904__py3-none-any.whl → 3.14.0.dev2026013104__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.
@@ -3,7 +3,6 @@
3
3
  import jax
4
4
  import numpy as np
5
5
 
6
- from keras.src.backend.common import global_state
7
6
  from keras.src.random import seed_generator
8
7
  from keras.src.utils import jax_utils
9
8
  from keras.src.utils import rng_utils
@@ -157,23 +156,6 @@ def initialize_rng():
157
156
  # Set the global seed.
158
157
  rng_utils.set_random_seed(global_seed)
159
158
 
160
- # Check if the global seed generator is set and ensure it has an initialized
161
- # seed. Otherwise, reset the seed to the global seed.
162
- global_seed_generator = global_state.get_global_attribute(
163
- seed_generator.GLOBAL_SEED_GENERATOR
164
- )
165
- if global_seed_generator is not None:
166
- seed = global_seed_generator.get_config()["seed"]
167
- if seed is None:
168
- global_state.set_global_attribute(
169
- seed_generator.GLOBAL_SEED_GENERATOR,
170
- seed_generator.SeedGenerator(
171
- seed=global_seed,
172
- name=global_seed_generator.name,
173
- backend=global_seed_generator.backend,
174
- ),
175
- )
176
-
177
159
 
178
160
  def initialize(job_addresses, num_processes, process_id):
179
161
  if job_addresses and "," in job_addresses:
@@ -2122,7 +2122,22 @@ def nanmin(x, axis=None, keepdims=False):
2122
2122
 
2123
2123
 
2124
2124
  def nansum(x, axis=None, keepdims=False):
2125
- raise NotImplementedError("`nansum` is not supported with openvino backend")
2125
+ x = get_ov_output(x)
2126
+ x_type = x.get_element_type()
2127
+
2128
+ if not x_type.is_integral() and x_type != Type.boolean:
2129
+ nan_mask = ov_opset.is_nan(x)
2130
+ zero = ov_opset.constant(0, x_type)
2131
+ x = ov_opset.select(nan_mask, zero, x).output(0)
2132
+
2133
+ x, axis = _resolve_axis(x, axis)
2134
+ if axis is None:
2135
+ return OpenVINOKerasTensor(x)
2136
+
2137
+ x = _upcast_type_if_needed(x)
2138
+ result = ov_opset.reduce_sum(x, axis, keepdims).output(0)
2139
+
2140
+ return OpenVINOKerasTensor(result)
2126
2141
 
2127
2142
 
2128
2143
  def nan_to_num(x, nan=0.0, posinf=None, neginf=None):
@@ -2717,7 +2732,37 @@ def round(x, decimals=0):
2717
2732
 
2718
2733
 
2719
2734
  def tile(x, repeats):
2720
- raise NotImplementedError("`tile` is not supported with openvino backend")
2735
+ x = get_ov_output(x)
2736
+
2737
+ if isinstance(repeats, int):
2738
+ repeats = [repeats]
2739
+ repeats = get_ov_output(repeats)
2740
+
2741
+ if repeats.get_element_type() != Type.i64:
2742
+ repeats = ov_opset.convert(repeats, Type.i64)
2743
+
2744
+ if len(repeats.get_partial_shape()) != 1:
2745
+ repeats = ov_opset.reshape(repeats, [-1], False)
2746
+
2747
+ shape_x = ov_opset.shape_of(x, Type.i64)
2748
+ rank_x = ov_opset.shape_of(shape_x, Type.i64)
2749
+ rank_r = ov_opset.shape_of(repeats, Type.i64)
2750
+
2751
+ one = ov_opset.constant(1, Type.i64)
2752
+ zero = ov_opset.constant(0, Type.i64)
2753
+
2754
+ pad_x = ov_opset.maximum(ov_opset.subtract(rank_r, rank_x), zero)
2755
+ new_x_shape = ov_opset.concat(
2756
+ [ov_opset.broadcast(one, pad_x).output(0), shape_x], 0
2757
+ )
2758
+ x = ov_opset.reshape(x, new_x_shape, False)
2759
+
2760
+ pad_r = ov_opset.maximum(ov_opset.subtract(rank_x, rank_r), zero)
2761
+ repeats = ov_opset.concat(
2762
+ [ov_opset.broadcast(one, pad_r).output(0), repeats], 0
2763
+ )
2764
+
2765
+ return OpenVINOKerasTensor(ov_opset.tile(x, repeats).output(0))
2721
2766
 
2722
2767
 
2723
2768
  def trace(x, offset=0, axis1=0, axis2=1):
@@ -2,6 +2,7 @@ from keras.src import backend
2
2
  from keras.src import layers
3
3
  from keras.src.api_export import keras_export
4
4
  from keras.src.export.saved_model import _list_variables_used_by_fns
5
+ from keras.src.saving import serialization_lib
5
6
  from keras.src.utils.module_utils import tensorflow as tf
6
7
 
7
8
 
@@ -146,3 +147,36 @@ class TFSMLayer(layers.Layer):
146
147
  "call_training_endpoint": self.call_training_endpoint,
147
148
  }
148
149
  return {**base_config, **config}
150
+
151
+ @classmethod
152
+ def from_config(cls, config, custom_objects=None, safe_mode=None):
153
+ """Creates a TFSMLayer from its config.
154
+ Args:
155
+ config: A Python dictionary, typically the output of `get_config`.
156
+ custom_objects: Optional dictionary mapping names to custom objects.
157
+ safe_mode: Boolean, whether to disallow loading TFSMLayer.
158
+ When `safe_mode=True`, loading is disallowed because TFSMLayer
159
+ loads external SavedModels that may contain attacker-controlled
160
+ executable graph code. Defaults to `True`.
161
+ Returns:
162
+ A TFSMLayer instance.
163
+ """
164
+ # Follow the same pattern as Lambda layer for safe_mode handling
165
+ effective_safe_mode = (
166
+ safe_mode
167
+ if safe_mode is not None
168
+ else serialization_lib.in_safe_mode()
169
+ )
170
+
171
+ if effective_safe_mode is not False:
172
+ raise ValueError(
173
+ "Requested the deserialization of a `TFSMLayer`, which "
174
+ "loads an external SavedModel. This carries a potential risk "
175
+ "of arbitrary code execution and thus it is disallowed by "
176
+ "default. If you trust the source of the artifact, you can "
177
+ "override this error by passing `safe_mode=False` to the "
178
+ "loading function, or calling "
179
+ "`keras.config.enable_unsafe_deserialization()."
180
+ )
181
+
182
+ return cls(**config)
@@ -25,6 +25,7 @@ ALL_OBJECTS = {
25
25
  Adagrad,
26
26
  Adamax,
27
27
  Adafactor,
28
+ Muon,
28
29
  Nadam,
29
30
  Ftrl,
30
31
  Lion,
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.14.0.dev2026012904"
4
+ __version__ = "3.14.0.dev2026013104"
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.14.0.dev2026012904
3
+ Version: 3.14.0.dev2026013104
4
4
  Summary: Multi-backend Keras
5
5
  Author-email: Keras team <keras-users@googlegroups.com>
6
6
  License: Apache License 2.0
@@ -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=L6aU5qNyjfVqWFQMoyXdfGkHRVpx3Z4Axvr6FTCf4N8,204
131
+ keras/src/version.py,sha256=czO9hPDnPlqYI5RCPx-8o5q4MY_U5sszh1qYgRP4csc,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
@@ -164,7 +164,7 @@ keras/src/backend/common/tensor_attributes.py,sha256=X5sYeGDu9YmVBIn8oX31IeE-v-b
164
164
  keras/src/backend/common/variables.py,sha256=ENq8lbwCGoIggC3Ef92Ea9G7ej4NZJnomvJZYwp8BaI,24467
165
165
  keras/src/backend/jax/__init__.py,sha256=l_HMwAZ3oAV4Etnw9RPqbvLYPPs3CZYbgaLd_qy36ps,1495
166
166
  keras/src/backend/jax/core.py,sha256=pwsVWZF63o47StwMdwm9tRQapX_EHNnMt4r8Xe37gIg,23132
167
- keras/src/backend/jax/distribution_lib.py,sha256=pwUsC_p_z73-5pG0_nI1tbJ9cqMqd93-ROIteEEbY7w,9258
167
+ keras/src/backend/jax/distribution_lib.py,sha256=y5bCEApRjDKhBeobI6h9ydjZDA8mqNjT1xYW_IsHWGw,8498
168
168
  keras/src/backend/jax/export.py,sha256=jV2yKQLzYjK72vTJmdNomWPLeNS_lDTCEKzQx_5D_-E,7368
169
169
  keras/src/backend/jax/image.py,sha256=RiYIalbIaUQdDOGpDZUBk5KNsX94Xqg7iyXGATN9V58,30482
170
170
  keras/src/backend/jax/layer.py,sha256=o6CicT06udwamTRQIjNSDLZLyYHFzBXNbxewXgWe0iw,308
@@ -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=KzwfF8A1RPvmZCiZZqM0B5XELQNfyCYMAnb60Cxn2Jw,111780
201
+ keras/src/backend/openvino/numpy.py,sha256=wEaJROQYYiz8Yw2EWt_X_BeWJrgPMrlR-LlKMIrZE8U,113136
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
@@ -288,7 +288,7 @@ keras/src/export/onnx.py,sha256=XsVSmNmxJDQrDuUANKFo8smOSm4BBYm35bR1AW9OWFo,8404
288
288
  keras/src/export/openvino.py,sha256=C9QNCOQ8-MwoOr8ZUqQvGzWY_CHOb8yDlMIJ9NYsLyw,7626
289
289
  keras/src/export/saved_model.py,sha256=bxcsVd87MXnw3ENKu_dbUc8JzPFqjOAPbLL0U5KqG-g,28425
290
290
  keras/src/export/tf2onnx_lib.py,sha256=cvHXS84Ocjcp1cTh5SziXAzNUsZ51RqjXNhOk5IlNDs,7234
291
- keras/src/export/tfsm_layer.py,sha256=1OSV8sg_ftrMQjyf_RBsNNC2sihkWCKml5Yv3M3C-NA,5998
291
+ keras/src/export/tfsm_layer.py,sha256=7qOYvUwtHluDykQtob4VgtN88EzsAgzk8MDsWolvB38,7545
292
292
  keras/src/initializers/__init__.py,sha256=tG7qxC2J0PDhO_L2W95sJXNIduL7F5lqHvUuJ7EIhXE,5662
293
293
  keras/src/initializers/constant_initializers.py,sha256=CvTyqbkcvvhwLlKYf8jqwlS-F2-Uj2c13si8Wjc4tmQ,10072
294
294
  keras/src/initializers/initializer.py,sha256=kNAyRA8CzBdtknT6ZUt5XIO2_Z9NzpN119CId7wT1Vg,2632
@@ -508,7 +508,7 @@ keras/src/ops/numpy.py,sha256=VmjIuyjZYDu37AO0PaJ6fpw8MnVKcFUJ5IDx_nnPxps,264374
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
511
- keras/src/optimizers/__init__.py,sha256=k7AmJUexCuGHTvU5gCrL_Pf7XYQmA6dZjJ47kcLvqfk,3974
511
+ keras/src/optimizers/__init__.py,sha256=9NzqTWeXY5NwY9Z3htYsZAVmEQFFudX1eGrv8uJizX0,3984
512
512
  keras/src/optimizers/adadelta.py,sha256=QRVnzP2vdaEX02yb81Wv9ovV5VNvjBGZz3iKISBp150,4581
513
513
  keras/src/optimizers/adafactor.py,sha256=wz90cSLBM-pCtYHSnxFSSYXEo-CBa4POCmL98HWhwcs,8418
514
514
  keras/src/optimizers/adagrad.py,sha256=x6HxwrqAjyhro1HQabcJQLLPPaXhWFJH6n-K0jBvE9g,3722
@@ -618,7 +618,7 @@ keras/utils/bounding_boxes/__init__.py,sha256=jtvQll4u8ZY0Z96HwNhP1nxWEG9FM3gI-6
618
618
  keras/utils/legacy/__init__.py,sha256=oSYZz6uS8UxSElRaaJYWJEoweJ4GAasZjnn7fNaOlog,342
619
619
  keras/visualization/__init__.py,sha256=UKWmiy6sps4SWlmQi9WX8_Z53cPpLlphz2zIeHdwJpQ,722
620
620
  keras/wrappers/__init__.py,sha256=QkS-O5K8qGS7C3sytF8MpmO6PasATpNVGF8qtb7Ojsw,407
621
- keras_nightly-3.14.0.dev2026012904.dist-info/METADATA,sha256=0pSnPO1OPi8catYTDRABuendG3SeP4dMURreOSKYJRQ,6339
622
- keras_nightly-3.14.0.dev2026012904.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
623
- keras_nightly-3.14.0.dev2026012904.dist-info/top_level.txt,sha256=ptcw_-QuGZ4ZDjMdwi_Z0clZm8QAqFdvzzFnDEOTs9o,6
624
- keras_nightly-3.14.0.dev2026012904.dist-info/RECORD,,
621
+ keras_nightly-3.14.0.dev2026013104.dist-info/METADATA,sha256=w0kkqL1AF73EhiimNKldJ4tSW7eCF5cKZwXLOhxviSM,6339
622
+ keras_nightly-3.14.0.dev2026013104.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
623
+ keras_nightly-3.14.0.dev2026013104.dist-info/top_level.txt,sha256=ptcw_-QuGZ4ZDjMdwi_Z0clZm8QAqFdvzzFnDEOTs9o,6
624
+ keras_nightly-3.14.0.dev2026013104.dist-info/RECORD,,