tf-keras-nightly 2.20.0.dev2025051109__py3-none-any.whl → 2.21.0.dev2025123010__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.
- tf_keras/__init__.py +1 -1
- tf_keras/protobuf/projector_config_pb2.py +23 -12
- tf_keras/protobuf/saved_metadata_pb2.py +21 -10
- tf_keras/protobuf/versions_pb2.py +19 -8
- tf_keras/src/__init__.py +1 -1
- tf_keras/src/engine/base_layer.py +234 -96
- tf_keras/src/engine/base_layer_utils.py +17 -5
- tf_keras/src/engine/base_layer_v1.py +12 -3
- tf_keras/src/engine/data_adapter.py +30 -13
- tf_keras/src/engine/functional.py +36 -15
- tf_keras/src/engine/input_layer.py +9 -0
- tf_keras/src/engine/input_spec.py +11 -1
- tf_keras/src/layers/activation/softmax.py +26 -11
- tf_keras/src/layers/attention/multi_head_attention.py +8 -1
- tf_keras/src/layers/core/tf_op_layer.py +4 -0
- tf_keras/src/layers/rnn/cell_wrappers.py +13 -1
- tf_keras/src/metrics/confusion_metrics.py +51 -4
- tf_keras/src/models/sharpness_aware_minimization.py +17 -7
- tf_keras/src/saving/legacy/saved_model/save_impl.py +28 -12
- tf_keras/src/saving/legacy/saving_utils.py +14 -2
- tf_keras/src/saving/saving_lib.py +1 -1
- tf_keras/src/utils/layer_utils.py +45 -3
- tf_keras/src/utils/metrics_utils.py +4 -1
- {tf_keras_nightly-2.20.0.dev2025051109.dist-info → tf_keras_nightly-2.21.0.dev2025123010.dist-info}/METADATA +2 -2
- {tf_keras_nightly-2.20.0.dev2025051109.dist-info → tf_keras_nightly-2.21.0.dev2025123010.dist-info}/RECORD +27 -49
- {tf_keras_nightly-2.20.0.dev2025051109.dist-info → tf_keras_nightly-2.21.0.dev2025123010.dist-info}/WHEEL +1 -1
- tf_keras/src/layers/preprocessing/benchmarks/bucketized_column_dense_benchmark.py +0 -85
- tf_keras/src/layers/preprocessing/benchmarks/category_encoding_benchmark.py +0 -84
- tf_keras/src/layers/preprocessing/benchmarks/category_hash_dense_benchmark.py +0 -89
- tf_keras/src/layers/preprocessing/benchmarks/category_hash_varlen_benchmark.py +0 -89
- tf_keras/src/layers/preprocessing/benchmarks/category_vocab_file_dense_benchmark.py +0 -110
- tf_keras/src/layers/preprocessing/benchmarks/category_vocab_file_varlen_benchmark.py +0 -103
- tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_dense_benchmark.py +0 -87
- tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_indicator_dense_benchmark.py +0 -96
- tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_indicator_varlen_benchmark.py +0 -96
- tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_varlen_benchmark.py +0 -87
- tf_keras/src/layers/preprocessing/benchmarks/discretization_adapt_benchmark.py +0 -109
- tf_keras/src/layers/preprocessing/benchmarks/embedding_dense_benchmark.py +0 -86
- tf_keras/src/layers/preprocessing/benchmarks/embedding_varlen_benchmark.py +0 -89
- tf_keras/src/layers/preprocessing/benchmarks/hashed_crossing_benchmark.py +0 -90
- tf_keras/src/layers/preprocessing/benchmarks/hashing_benchmark.py +0 -105
- tf_keras/src/layers/preprocessing/benchmarks/image_preproc_benchmark.py +0 -159
- tf_keras/src/layers/preprocessing/benchmarks/index_lookup_adapt_benchmark.py +0 -135
- tf_keras/src/layers/preprocessing/benchmarks/index_lookup_forward_benchmark.py +0 -144
- tf_keras/src/layers/preprocessing/benchmarks/normalization_adapt_benchmark.py +0 -124
- tf_keras/src/layers/preprocessing/benchmarks/weighted_embedding_varlen_benchmark.py +0 -99
- tf_keras/src/saving/legacy/saved_model/create_test_saved_model.py +0 -37
- tf_keras/src/tests/keras_doctest.py +0 -159
- {tf_keras_nightly-2.20.0.dev2025051109.dist-info → tf_keras_nightly-2.21.0.dev2025123010.dist-info}/top_level.txt +0 -0
|
@@ -219,7 +219,11 @@ def wrap_layer_functions(layer, serialization_cache):
|
|
|
219
219
|
with tracing_scope():
|
|
220
220
|
call_collection.trace_with_input_signature()
|
|
221
221
|
with base_layer_utils.call_context().enter(
|
|
222
|
-
layer,
|
|
222
|
+
layer,
|
|
223
|
+
inputs=None,
|
|
224
|
+
build_graph=True,
|
|
225
|
+
call_context_args={},
|
|
226
|
+
saving=True,
|
|
223
227
|
):
|
|
224
228
|
for fn in fns.values():
|
|
225
229
|
if fn is not None and not isinstance(fn, LayerCall):
|
|
@@ -515,19 +519,28 @@ class LayerCallCollection:
|
|
|
515
519
|
else:
|
|
516
520
|
add_trace_to_queue(fn, args, kwargs)
|
|
517
521
|
|
|
518
|
-
def
|
|
522
|
+
def arg_was_passed(self, arg_name, args, kwargs):
|
|
523
|
+
"""Returns True if the argument was passed to the call function."""
|
|
519
524
|
return self._call_spec.arg_was_passed(
|
|
520
|
-
|
|
525
|
+
arg_name, args, kwargs, inputs_in_args=True
|
|
521
526
|
)
|
|
522
527
|
|
|
523
|
-
def
|
|
528
|
+
def training_arg_was_passed(self, args, kwargs):
|
|
529
|
+
"""Returns True if the training arg was passed to the call function."""
|
|
530
|
+
return self.arg_was_passed("training", args, kwargs)
|
|
531
|
+
|
|
532
|
+
def get_arg_value(self, arg_name, args, kwargs):
|
|
533
|
+
"""Returns the value of the given argument or None if not found."""
|
|
524
534
|
try:
|
|
525
535
|
return self._call_spec.get_arg_value(
|
|
526
|
-
|
|
536
|
+
arg_name, args, kwargs, inputs_in_args=True
|
|
527
537
|
)
|
|
528
|
-
except KeyError: #
|
|
538
|
+
except KeyError: # Arg not found in args or kwargs.
|
|
529
539
|
return None
|
|
530
540
|
|
|
541
|
+
def get_training_arg_value(self, args, kwargs):
|
|
542
|
+
return self.get_arg_value("training", args, kwargs)
|
|
543
|
+
|
|
531
544
|
def get_input_arg_value(self, args, kwargs):
|
|
532
545
|
return self._call_spec.get_arg_value(
|
|
533
546
|
self._input_arg_name, args, kwargs, inputs_in_args=True
|
|
@@ -613,20 +626,23 @@ def layer_call_wrapper(call_collection, method, name):
|
|
|
613
626
|
def wrapper(*args, **kwargs):
|
|
614
627
|
"""Calls method within call context."""
|
|
615
628
|
layer = call_collection.layer
|
|
616
|
-
|
|
629
|
+
propagated = {"training": None}
|
|
617
630
|
inputs = _filtered_inputs([args, kwargs])
|
|
618
631
|
|
|
619
|
-
|
|
620
|
-
args
|
|
621
|
-
|
|
622
|
-
|
|
632
|
+
for context_arg in layer._call_context_args:
|
|
633
|
+
if (args or kwargs) and call_collection.arg_was_passed(
|
|
634
|
+
context_arg, args, kwargs
|
|
635
|
+
):
|
|
636
|
+
propagated[context_arg] = call_collection.get_arg_value(
|
|
637
|
+
context_arg, args, kwargs
|
|
638
|
+
)
|
|
623
639
|
|
|
624
640
|
original_losses = _reset_layer_losses(layer)
|
|
625
641
|
with base_layer_utils.call_context().enter(
|
|
626
642
|
layer,
|
|
627
643
|
inputs=inputs,
|
|
628
644
|
build_graph=False,
|
|
629
|
-
|
|
645
|
+
call_context_args=propagated,
|
|
630
646
|
saving=True,
|
|
631
647
|
):
|
|
632
648
|
with autocast_variable.enable_auto_cast_variables(
|
|
@@ -138,12 +138,24 @@ def trace_model_call(model, input_signature=None):
|
|
|
138
138
|
@tf.function
|
|
139
139
|
def _wrapped_model(*args, **kwargs):
|
|
140
140
|
"""A concrete tf.function that wraps the model's call function."""
|
|
141
|
+
call_context = base_layer_utils.call_context()
|
|
142
|
+
|
|
143
|
+
args, kwargs, propagated = model._get_propagated_call_context_arguments(
|
|
144
|
+
args, kwargs, call_context, model._call_context_args
|
|
145
|
+
)
|
|
146
|
+
|
|
141
147
|
(args, kwargs,) = model._call_spec.set_arg_value(
|
|
142
148
|
"training", False, args, kwargs, inputs_in_args=True
|
|
143
149
|
)
|
|
144
150
|
|
|
145
|
-
|
|
146
|
-
|
|
151
|
+
propagated["training"] = False
|
|
152
|
+
|
|
153
|
+
with call_context.enter(
|
|
154
|
+
model,
|
|
155
|
+
inputs=None,
|
|
156
|
+
build_graph=False,
|
|
157
|
+
call_context_args=propagated,
|
|
158
|
+
saving=True,
|
|
147
159
|
):
|
|
148
160
|
outputs = model(*args, **kwargs)
|
|
149
161
|
|
|
@@ -639,7 +639,7 @@ class NpzIOStore:
|
|
|
639
639
|
self.f = archive.open(root_path, mode="r")
|
|
640
640
|
else:
|
|
641
641
|
self.f = open(root_path, mode="rb")
|
|
642
|
-
self.contents = np.load(self.f, allow_pickle=
|
|
642
|
+
self.contents = np.load(self.f, allow_pickle=False)
|
|
643
643
|
|
|
644
644
|
def make(self, path):
|
|
645
645
|
if not path:
|
|
@@ -775,11 +775,13 @@ class CallFunctionSpec:
|
|
|
775
775
|
"""Caches the spec and provides utilities for handling call function
|
|
776
776
|
args."""
|
|
777
777
|
|
|
778
|
-
def __init__(self, full_argspec):
|
|
778
|
+
def __init__(self, full_argspec, call_context_args=set()):
|
|
779
779
|
"""Initialies a `CallFunctionSpec`.
|
|
780
780
|
|
|
781
781
|
Args:
|
|
782
782
|
full_argspec: the FullArgSpec of a call function of a layer.
|
|
783
|
+
call_context_args: The set of call-context arguments registered
|
|
784
|
+
with to the current layer.
|
|
783
785
|
"""
|
|
784
786
|
self._full_argspec = full_argspec
|
|
785
787
|
|
|
@@ -797,6 +799,18 @@ class CallFunctionSpec:
|
|
|
797
799
|
"mask" in self._arg_names or call_accepts_kwargs
|
|
798
800
|
)
|
|
799
801
|
|
|
802
|
+
# Track the set of call-context arguments that the current layer's
|
|
803
|
+
# `call` method accepts.
|
|
804
|
+
self._expected_context_args = set()
|
|
805
|
+
self._update_call_context_arguments(call_context_args)
|
|
806
|
+
|
|
807
|
+
self._context_arg_defaults = dict()
|
|
808
|
+
self._update_call_context_argument_defaults(call_context_args)
|
|
809
|
+
|
|
810
|
+
def _update_call_context_argument_defaults(self, context_args):
|
|
811
|
+
"""Updates the set of call-context argument defaults for the current
|
|
812
|
+
layer's `call` method.
|
|
813
|
+
"""
|
|
800
814
|
call_fn_defaults = self._full_argspec.defaults or []
|
|
801
815
|
defaults = dict()
|
|
802
816
|
# The call arg defaults are an n-tuple of the last n elements of the
|
|
@@ -806,7 +820,21 @@ class CallFunctionSpec:
|
|
|
806
820
|
# The default training arg will be any (non-None) default specified in
|
|
807
821
|
# the method signature, or None if no value is specified.
|
|
808
822
|
defaults.update(self._full_argspec.kwonlydefaults or {})
|
|
809
|
-
|
|
823
|
+
|
|
824
|
+
for arg in context_args:
|
|
825
|
+
self._context_arg_defaults[arg] = defaults.get(arg)
|
|
826
|
+
|
|
827
|
+
def _update_call_context_arguments(self, context_args):
|
|
828
|
+
"""Updates the set of call-context arguments that the current layer's
|
|
829
|
+
`call` method accepts.
|
|
830
|
+
"""
|
|
831
|
+
call_accepts_kwargs = self._full_argspec.varkw is not None
|
|
832
|
+
args_to_add = {
|
|
833
|
+
arg
|
|
834
|
+
for arg in context_args
|
|
835
|
+
if call_accepts_kwargs or arg in self._arg_names
|
|
836
|
+
}
|
|
837
|
+
self._expected_context_args.update(args_to_add)
|
|
810
838
|
|
|
811
839
|
@property
|
|
812
840
|
def full_argspec(self):
|
|
@@ -843,6 +871,16 @@ class CallFunctionSpec:
|
|
|
843
871
|
def expects_training_arg(self, value):
|
|
844
872
|
self._expects_training_arg = value
|
|
845
873
|
|
|
874
|
+
@property
|
|
875
|
+
def expected_context_args(self):
|
|
876
|
+
"""The set of call-context arguments that the current layer's
|
|
877
|
+
`call` method accepts."""
|
|
878
|
+
return self._expected_context_args
|
|
879
|
+
|
|
880
|
+
@expected_context_args.setter
|
|
881
|
+
def expected_context_args(self, value):
|
|
882
|
+
self._expected_context_args = value
|
|
883
|
+
|
|
846
884
|
@property
|
|
847
885
|
def expects_mask_arg(self):
|
|
848
886
|
"""Whether the call function uses `mask` as a parameter."""
|
|
@@ -855,7 +893,11 @@ class CallFunctionSpec:
|
|
|
855
893
|
@property
|
|
856
894
|
def default_training_arg(self):
|
|
857
895
|
"""The default value given to the "training" argument."""
|
|
858
|
-
return self.
|
|
896
|
+
return self.get_context_arg_default("training")
|
|
897
|
+
|
|
898
|
+
def get_context_arg_default(self, arg_name):
|
|
899
|
+
"""The default value given to the call context arguments."""
|
|
900
|
+
return self._context_arg_defaults.get(arg_name, None)
|
|
859
901
|
|
|
860
902
|
def arg_was_passed(self, arg_name, args, kwargs, inputs_in_args=False):
|
|
861
903
|
"""Returns true if argument is present in `args` or `kwargs`.
|
|
@@ -237,6 +237,7 @@ class AUCCurve(Enum):
|
|
|
237
237
|
|
|
238
238
|
ROC = "ROC"
|
|
239
239
|
PR = "PR"
|
|
240
|
+
PR_GAIN = "PR_GAIN"
|
|
240
241
|
|
|
241
242
|
@staticmethod
|
|
242
243
|
def from_str(key):
|
|
@@ -244,10 +245,12 @@ class AUCCurve(Enum):
|
|
|
244
245
|
return AUCCurve.PR
|
|
245
246
|
elif key in ("roc", "ROC"):
|
|
246
247
|
return AUCCurve.ROC
|
|
248
|
+
elif key in ("pr_gain", "prgain", "PR_GAIN", "PRGAIN"):
|
|
249
|
+
return AUCCurve.PR_GAIN
|
|
247
250
|
else:
|
|
248
251
|
raise ValueError(
|
|
249
252
|
f'Invalid AUC curve value: "{key}". '
|
|
250
|
-
'Expected values are ["PR", "ROC"]'
|
|
253
|
+
'Expected values are ["PR", "ROC", "PR_GAIN"]'
|
|
251
254
|
)
|
|
252
255
|
|
|
253
256
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tf_keras-nightly
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.21.0.dev2025123010
|
|
4
4
|
Summary: Deep learning for humans.
|
|
5
5
|
Home-page: https://keras.io/
|
|
6
6
|
Download-URL: https://github.com/keras-team/tf-keras/tags
|
|
@@ -26,7 +26,7 @@ Classifier: Topic :: Software Development
|
|
|
26
26
|
Classifier: Topic :: Software Development :: Libraries
|
|
27
27
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
28
|
Requires-Python: >=3.9
|
|
29
|
-
Requires-Dist: tf-nightly~=2.
|
|
29
|
+
Requires-Dist: tf-nightly~=2.21.0.dev
|
|
30
30
|
Dynamic: author
|
|
31
31
|
Dynamic: author-email
|
|
32
32
|
Dynamic: classifier
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
tf_keras/__init__.py,sha256=
|
|
1
|
+
tf_keras/__init__.py,sha256=o1qbOe_ffzZ4LRxDpb9Ga8DP1A89Fhr9103F88EajA4,911
|
|
2
2
|
tf_keras/__internal__/__init__.py,sha256=OHQbeIC0QtRBI7dgXaJaVbH8F00x8dCI-DvEcIfyMsE,671
|
|
3
3
|
tf_keras/__internal__/backend/__init__.py,sha256=LnMs2A6685gDG79fxqmdulIYlVE_3WmXlBTBo9ZWYcw,162
|
|
4
4
|
tf_keras/__internal__/layers/__init__.py,sha256=F5SGMhOTPzm-PR44VrfinURHcVeQPIEdwnZlAkSTB3A,176
|
|
@@ -201,12 +201,12 @@ tf_keras/preprocessing/image/__init__.py,sha256=H6rbMLtlGIy_jBLCSDklVTMXUjEUe8KQ
|
|
|
201
201
|
tf_keras/preprocessing/sequence/__init__.py,sha256=Zg9mw0TIRIc-BmVtdXvW3jdIQo05VHZX_xmqZDMuaik,285
|
|
202
202
|
tf_keras/preprocessing/text/__init__.py,sha256=1yQd-VZD6SjnEpPyBFLucYMxu9A5DnAnIec2tba9zQk,329
|
|
203
203
|
tf_keras/protobuf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
204
|
-
tf_keras/protobuf/projector_config_pb2.py,sha256=
|
|
205
|
-
tf_keras/protobuf/saved_metadata_pb2.py,sha256=
|
|
206
|
-
tf_keras/protobuf/versions_pb2.py,sha256=
|
|
204
|
+
tf_keras/protobuf/projector_config_pb2.py,sha256=Qn_IXcjH7GYRpehPH4hznWxGDPn_No8kLTJHWkkCAu4,2208
|
|
205
|
+
tf_keras/protobuf/saved_metadata_pb2.py,sha256=nI5xD26EgxUpHE2JyJsyDEHi6O8Tunue9j_JN9BUX08,1946
|
|
206
|
+
tf_keras/protobuf/versions_pb2.py,sha256=0XsJrhgwioUlNc4hdeJ8tee3tWSTvZnLEwJd--wAVr4,1450
|
|
207
207
|
tf_keras/regularizers/__init__.py,sha256=D6TnroEDjnyP79TY_624g2DToxVWuKzuaiBAn_gUQaY,634
|
|
208
208
|
tf_keras/saving/__init__.py,sha256=Xo0imlDhiYV7Rowy8BjMwrFJuAB8h2DdIuVcxvaeEa0,681
|
|
209
|
-
tf_keras/src/__init__.py,sha256=
|
|
209
|
+
tf_keras/src/__init__.py,sha256=p7hwxQsHJzS7Qq-OTj-gcJgsGn9bw5FN9IQ03yQO_Ls,1502
|
|
210
210
|
tf_keras/src/activations.py,sha256=QNTCdIuNGww5BPwkkjkaNZf4j09m27Nqi-r4aTBOxnk,22630
|
|
211
211
|
tf_keras/src/backend.py,sha256=-_L2aB0n9ZkFsRoivRX-BjGxBpJG27PunUm9DzN0fvU,248509
|
|
212
212
|
tf_keras/src/backend_config.py,sha256=DaKkQg6jLmzR2GtgjNxwFoHuTXwVcAzx_Hx8XgAKPNs,4516
|
|
@@ -271,16 +271,16 @@ tf_keras/src/dtensor/lazy_variable.py,sha256=c3yylbga0se3Geflutss3fz5RzBYuY2vkU3
|
|
|
271
271
|
tf_keras/src/dtensor/test_util.py,sha256=9QAbt44mlirdqwG2ertTsoXNKG2V4Z0bqJFxGdxy5BY,4572
|
|
272
272
|
tf_keras/src/dtensor/utils.py,sha256=2TTSCEOA61Ia1FAPfQWJ2CRfiocBGUZreXH9UBFzFbk,6441
|
|
273
273
|
tf_keras/src/engine/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
274
|
-
tf_keras/src/engine/base_layer.py,sha256=
|
|
275
|
-
tf_keras/src/engine/base_layer_utils.py,sha256=
|
|
276
|
-
tf_keras/src/engine/base_layer_v1.py,sha256=
|
|
274
|
+
tf_keras/src/engine/base_layer.py,sha256=r_0g7rX2WA7-fThh3sjFqNZgSTEuR1CTsW4FrZMMI6s,162338
|
|
275
|
+
tf_keras/src/engine/base_layer_utils.py,sha256=AFjqwXM-WShf0dfsyIotlXYIRJlqYyjQhAf50xZgyos,36166
|
|
276
|
+
tf_keras/src/engine/base_layer_v1.py,sha256=MMfdUKB8tjbjjX9Pj5b6E5XgrM-BnVx0ilSndcR_3QA,102875
|
|
277
277
|
tf_keras/src/engine/base_preprocessing_layer.py,sha256=xne5VVtj9_IE1_cjh-kaPk-utoMY7mYwTOcgybFfY34,12650
|
|
278
278
|
tf_keras/src/engine/compile_utils.py,sha256=F6KxbaXnppns5XCOJl8wzsiQ1riEp43s0G0SWsWAUE0,31757
|
|
279
|
-
tf_keras/src/engine/data_adapter.py,sha256=
|
|
280
|
-
tf_keras/src/engine/functional.py,sha256=
|
|
279
|
+
tf_keras/src/engine/data_adapter.py,sha256=N5UV4KYF-F7YJdB5kHR8pACSrFlSqQte_DsmA8Ksa6Y,72257
|
|
280
|
+
tf_keras/src/engine/functional.py,sha256=ojvj0DkGrnqd16dEIqj2AgFlmxB2s6e-3qjs78fN85E,71006
|
|
281
281
|
tf_keras/src/engine/functional_utils.py,sha256=5creFfo9UoG5OLJgkcw9gsfT-qch-RamT5IsU8675rU,11048
|
|
282
|
-
tf_keras/src/engine/input_layer.py,sha256=
|
|
283
|
-
tf_keras/src/engine/input_spec.py,sha256=
|
|
282
|
+
tf_keras/src/engine/input_layer.py,sha256=SRoRYG_PElMRMAypjeQRZ_0Ub4tu5jdRc6ASL59BAsY,18650
|
|
283
|
+
tf_keras/src/engine/input_spec.py,sha256=H2U8yNz7eabUozm4QAcL3XcQoxj6iAwvK6ecU7w8O5g,12455
|
|
284
284
|
tf_keras/src/engine/keras_tensor.py,sha256=rmIyf-sMKzGAMXzob0hCTZ3qA4JBYyIM85XUdmOPmqQ,28858
|
|
285
285
|
tf_keras/src/engine/node.py,sha256=mevKNFEtzeVbwLRuwB7sMzQGKt6ppIxLmMcfQMzu8N8,14254
|
|
286
286
|
tf_keras/src/engine/partial_batch_padding_handler.py,sha256=TNZvGXL-fvmZLLHIMPX_hy0w9LT8W52DHW7ZtnEvBvI,4325
|
|
@@ -314,13 +314,13 @@ tf_keras/src/layers/activation/elu.py,sha256=n-WAE6NjC9mbqcV7Kxgpt8tTbvwCQIGsoCV
|
|
|
314
314
|
tf_keras/src/layers/activation/leaky_relu.py,sha256=cJmpwgg4KEu--iK9gFuJT7uEGpDArB8q-XNBmJfC7_U,2618
|
|
315
315
|
tf_keras/src/layers/activation/prelu.py,sha256=D2yhneQrYQP6aHSK8nvnMKa1hIeuPZO_XCB2Cu9Cl4Y,4440
|
|
316
316
|
tf_keras/src/layers/activation/relu.py,sha256=JklQuReRiR3huAGr3QRtuGL0URpdspDFzBNjZgv0HDw,4281
|
|
317
|
-
tf_keras/src/layers/activation/softmax.py,sha256=
|
|
317
|
+
tf_keras/src/layers/activation/softmax.py,sha256=0g8uN5N8QDW8lj6nGabR-EBk58njbiNdhDzglv9rxXU,4861
|
|
318
318
|
tf_keras/src/layers/activation/thresholded_relu.py,sha256=rQLn9cr-w6hVJET2mS7OIQ9diiUiqUrX4CysXKNYbmg,2503
|
|
319
319
|
tf_keras/src/layers/attention/__init__.py,sha256=6HjPSyLhs_bf4erT65KyhSCHQF7WeWZe9YTH7iW6Nek,945
|
|
320
320
|
tf_keras/src/layers/attention/additive_attention.py,sha256=jie0cAXJEjU4xXK_Ur1SrEL9RqDIIAPyaAkK8O71TEs,7485
|
|
321
321
|
tf_keras/src/layers/attention/attention.py,sha256=TCnoOWAfh6i275TvudxyjosczBmL_zz9ByEUi-xXkAU,8682
|
|
322
322
|
tf_keras/src/layers/attention/base_dense_attention.py,sha256=cEzBldjwQfuJfNZRimW5s-NqyENU2-lmqaNNxAGxhKw,10856
|
|
323
|
-
tf_keras/src/layers/attention/multi_head_attention.py,sha256=
|
|
323
|
+
tf_keras/src/layers/attention/multi_head_attention.py,sha256=FQX0YtXRy5kg8OlShA7cp2kfczzeWb9Oj3tbzkukLRw,30618
|
|
324
324
|
tf_keras/src/layers/convolutional/__init__.py,sha256=U-4tja5JhSUva2G9uMmsZyZty2N2N9jT6EJRu5HAo-Y,3355
|
|
325
325
|
tf_keras/src/layers/convolutional/base_conv.py,sha256=jvm4elEyIVSNfYZxh4inzQ1Q2CKS_f8VawvXMIJFSC4,17574
|
|
326
326
|
tf_keras/src/layers/convolutional/base_depthwise_conv.py,sha256=SVgR2Y8dpeX4eDEF1e0UY0Mxh4A47eGHhJCQ1peGwNQ,9661
|
|
@@ -343,7 +343,7 @@ tf_keras/src/layers/core/embedding.py,sha256=iOdkBiP1IzwOVPjsKWA54NXrlk5KgJ0DfQ8
|
|
|
343
343
|
tf_keras/src/layers/core/identity.py,sha256=yj5cWlUTlYq_J_ZQb1iLzM0bqaM4V6TXVwM4iuBFp9U,1301
|
|
344
344
|
tf_keras/src/layers/core/lambda_layer.py,sha256=QzetX-lV9ybonQKg_6QzSm8w9Vkq8CPAM4BcAke7CZk,16481
|
|
345
345
|
tf_keras/src/layers/core/masking.py,sha256=19p6HYGlKdUfQnelsAoee6wf87fWx67NSGinyjagNc4,3340
|
|
346
|
-
tf_keras/src/layers/core/tf_op_layer.py,sha256=
|
|
346
|
+
tf_keras/src/layers/core/tf_op_layer.py,sha256=R6dFECVkPbmKi1nQVcxJy5lNxSVwiMlaWXB7j0PjI7Q,21320
|
|
347
347
|
tf_keras/src/layers/experimental/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
348
348
|
tf_keras/src/layers/experimental/dynamic_embedding.py,sha256=KuVIawm3avPEa5c2IDOyBH14xiU5bYbPqcm_HugfWYA,10730
|
|
349
349
|
tf_keras/src/layers/experimental/dynamic_lookup.py,sha256=CMNOaxAIkB1ChPcusuymhLAYTvobEbCBli6YkuWw8RE,13720
|
|
@@ -402,27 +402,7 @@ tf_keras/src/layers/preprocessing/preprocessing_utils.py,sha256=OR8NDGv8foDT2Ngv
|
|
|
402
402
|
tf_keras/src/layers/preprocessing/string_lookup.py,sha256=2yqsgps42qMd6MB6vwBevionU7dh77OQdLburmn90b0,19179
|
|
403
403
|
tf_keras/src/layers/preprocessing/text_vectorization.py,sha256=mL6sHm3TPXKg8q51vEWyo7LYKyiEoQFzm7GUkrSS-6E,30467
|
|
404
404
|
tf_keras/src/layers/preprocessing/benchmarks/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
405
|
-
tf_keras/src/layers/preprocessing/benchmarks/bucketized_column_dense_benchmark.py,sha256=ZKFxRPRDx9VYUzu3k42DO2hrN9Ve9UNLPYEraN3BU94,2845
|
|
406
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_encoding_benchmark.py,sha256=IEdxK6eQa1YdxgmOQ13YBeJ94afFWfGazAO6NvfxJ5w,2949
|
|
407
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_hash_dense_benchmark.py,sha256=yoGE5ofB7fspimQ1ImShs5KguNGUQ_JpsGYPLZS1gpQ,2809
|
|
408
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_hash_varlen_benchmark.py,sha256=5b80c35WGpWEXgv2lutqVVuS52mWiD6Cyw1ZA6KkseU,2723
|
|
409
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_vocab_file_dense_benchmark.py,sha256=SPmA9yXH3dr6uHfs1IsAkrjNo02YgyfmWrt24pl6ROs,3588
|
|
410
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_vocab_file_varlen_benchmark.py,sha256=JAM0X1lBkZd7KYtBFaBP2HfxxB3Uj7Ik7WeFhajbwNo,3437
|
|
411
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_dense_benchmark.py,sha256=y0RR1TMq5PUv4Jlh7jMmQrJWsjDtgDivsqTeEMi6ovI,2863
|
|
412
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_indicator_dense_benchmark.py,sha256=lyfRE8NP3gLfTDnIzucPqjMiLAOCEUS-pSwa1f7EXLM,3169
|
|
413
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_indicator_varlen_benchmark.py,sha256=Ebx54Qo5ec-Sys5bPhp1KaVtmWsQxpNotzxxpxtfBPg,3101
|
|
414
|
-
tf_keras/src/layers/preprocessing/benchmarks/category_vocab_list_varlen_benchmark.py,sha256=WkDOo5borQYk78xKbnsh7tcEZyjrDEGb7NnTkYzoM18,2795
|
|
415
|
-
tf_keras/src/layers/preprocessing/benchmarks/discretization_adapt_benchmark.py,sha256=UD48alO_v-Vb8naluZtPozU7U4Oy-1WPSV1oqhzl-Yk,3776
|
|
416
|
-
tf_keras/src/layers/preprocessing/benchmarks/embedding_dense_benchmark.py,sha256=PB7D3pFmVxlxZ4tKO7N-NB-wfJ0KY8B4RpAy_BZG01A,2836
|
|
417
|
-
tf_keras/src/layers/preprocessing/benchmarks/embedding_varlen_benchmark.py,sha256=-fif0N3JPQT9fIwmpj-XE2eJif21sK2TsC6fri7ZuWI,2831
|
|
418
405
|
tf_keras/src/layers/preprocessing/benchmarks/feature_column_benchmark.py,sha256=cSSHeEGH1dhxR3UJiCFZUgFeRZHd25eDUMRmKE140is,4814
|
|
419
|
-
tf_keras/src/layers/preprocessing/benchmarks/hashed_crossing_benchmark.py,sha256=QV4n0f2j5b1Us-D2NHMA7WMRuUeMyiZpg-FAEopK0qs,2835
|
|
420
|
-
tf_keras/src/layers/preprocessing/benchmarks/hashing_benchmark.py,sha256=wV16NUaNLfYZVwZCuMiX7JN9YDmbqyxaWHERo_uFJoE,3624
|
|
421
|
-
tf_keras/src/layers/preprocessing/benchmarks/image_preproc_benchmark.py,sha256=x-XDwI75oIW3clnGOOmRG0Tb3hsQTx40bwxT7sj6CaE,5467
|
|
422
|
-
tf_keras/src/layers/preprocessing/benchmarks/index_lookup_adapt_benchmark.py,sha256=LLv8vcdsphIBy5-owcABZdVSGSGMmQ7W-LmFTezO9Wc,4475
|
|
423
|
-
tf_keras/src/layers/preprocessing/benchmarks/index_lookup_forward_benchmark.py,sha256=O4e0X-yLYWpfN2pX_WshN92ygw7XqlXZfgQjeO1WjuY,4941
|
|
424
|
-
tf_keras/src/layers/preprocessing/benchmarks/normalization_adapt_benchmark.py,sha256=sB-Tcem8UdFGXnKx4HI4fLjTsIjaGJ2WAaphrxuItVc,4420
|
|
425
|
-
tf_keras/src/layers/preprocessing/benchmarks/weighted_embedding_varlen_benchmark.py,sha256=Z5k0UaPM0-VfUw9tMv4_dEhsQNDODWlfNtsZ1RHFrFI,3324
|
|
426
406
|
tf_keras/src/layers/regularization/__init__.py,sha256=9fIrtV8SwP1PG8BXfNrSP8rSyCdh4pPnV7hNvDbRysg,1369
|
|
427
407
|
tf_keras/src/layers/regularization/activity_regularization.py,sha256=QxnBlnkHi2HZ2Pt-mX5WGiJWzljNQmh-X4La9f7XDGo,1942
|
|
428
408
|
tf_keras/src/layers/regularization/alpha_dropout.py,sha256=JmMO6OHzpVtRS2Tl1fTslktQPM4MuN0ivNlCOUhH0VM,3800
|
|
@@ -454,7 +434,7 @@ tf_keras/src/layers/rnn/base_cudnn_rnn.py,sha256=cuPVg6r4L1pVWYTp3WFbJhikuIR2Vmg
|
|
|
454
434
|
tf_keras/src/layers/rnn/base_rnn.py,sha256=I7mWl4KQC26gILDt9pZ9moZ81yM57lvci6hzJ9ROrxo,41968
|
|
455
435
|
tf_keras/src/layers/rnn/base_wrapper.py,sha256=x4GANiXtmh9ztAFh7QtfbnQE76UVCGpaHp_XhrSs0Os,3159
|
|
456
436
|
tf_keras/src/layers/rnn/bidirectional.py,sha256=JyZuBU0q2lt4augThwm8vyTvYwEJxyawsHmgNIul5vU,22670
|
|
457
|
-
tf_keras/src/layers/rnn/cell_wrappers.py,sha256=
|
|
437
|
+
tf_keras/src/layers/rnn/cell_wrappers.py,sha256=fMGpdFFoRWRIuKz88NcnMvAtevv8OYHzxkF86Ltmwfk,27384
|
|
458
438
|
tf_keras/src/layers/rnn/conv_lstm1d.py,sha256=suShze6ipNXabGlKJTxkOia17ZP4SeEei3Mi4F8lFOQ,8761
|
|
459
439
|
tf_keras/src/layers/rnn/conv_lstm2d.py,sha256=myxOioB3yNn0L_-gMh0R41sb-MwTXO993lAT05_N0Zw,8874
|
|
460
440
|
tf_keras/src/layers/rnn/conv_lstm3d.py,sha256=GT4OoPFtCr5xgaaqy3ezt5DyDu8Ut-wQEihCOHFk0D4,8969
|
|
@@ -483,7 +463,7 @@ tf_keras/src/legacy_tf_layers/variable_scope_shim.py,sha256=kGAFW03pVWSB1DhHvQ1W
|
|
|
483
463
|
tf_keras/src/metrics/__init__.py,sha256=dM8S0ZhfiyPaXkdYuOSKvoytmYOkh8aYuJnpgUoT6vg,9699
|
|
484
464
|
tf_keras/src/metrics/accuracy_metrics.py,sha256=RRQqyYZcVrEY2Pfc-OV6k3rYhv9ejSLJ9JbJzs_D5vk,17514
|
|
485
465
|
tf_keras/src/metrics/base_metric.py,sha256=MCaI7Bx-kgs5udTRLvKMJ3SO90-GFs_9QMigrhkX9HQ,36498
|
|
486
|
-
tf_keras/src/metrics/confusion_metrics.py,sha256=
|
|
466
|
+
tf_keras/src/metrics/confusion_metrics.py,sha256=V1uNFUc1zyjxd-m-D83QhJ9bkbtPCfsXf3CROOPWmzs,68068
|
|
487
467
|
tf_keras/src/metrics/f_score_metrics.py,sha256=3uxqH9NNqoKaGPz-R6eERA23bK1TabCXrsJUz2sbetU,12000
|
|
488
468
|
tf_keras/src/metrics/hinge_metrics.py,sha256=QXtNdxE-IgZmdVQXIew_pN6X3aF9i7r7xirmb6oiOKA,4132
|
|
489
469
|
tf_keras/src/metrics/iou_metrics.py,sha256=dUqZpOppIPj3aCtS25Hs6bvJoPHNnrtAChujoA-6bLQ,28530
|
|
@@ -498,7 +478,7 @@ tf_keras/src/mixed_precision/policy.py,sha256=1GWHp99dU0f6D0h_jIrSQkoLyIf0ClRJ0B
|
|
|
498
478
|
tf_keras/src/mixed_precision/test_util.py,sha256=S4dDVLvFmv3OXvo-7kswO8MStwvTjP_caE3DrUhy9Po,8641
|
|
499
479
|
tf_keras/src/models/__init__.py,sha256=VQ3cZve-CsmM_4CEi9q-V7m2qFO9HbdiO38mAR4dKdM,1823
|
|
500
480
|
tf_keras/src/models/cloning.py,sha256=PHLTG0gSjvoKl8jxGaLCUq3ejK_o0PNA7gxSqxyoLBI,36839
|
|
501
|
-
tf_keras/src/models/sharpness_aware_minimization.py,sha256=
|
|
481
|
+
tf_keras/src/models/sharpness_aware_minimization.py,sha256=MArrweVZA85F1tPHZd06AVKpAdacaPplTz6eOS2XcRk,7795
|
|
502
482
|
tf_keras/src/optimizers/__init__.py,sha256=lkPBfjJhWx_0nV8MrEmjWvJTGKutM1a9nIrB0ua0O-k,13044
|
|
503
483
|
tf_keras/src/optimizers/adadelta.py,sha256=47HgdG0v-76B5htebkwl1OoryFPLO2kgk_CsYqgq7hU,6174
|
|
504
484
|
tf_keras/src/optimizers/adafactor.py,sha256=_IYi6WMyXl4nPimr15nAPWvj6ZKcP7cESFsdpeabNKQ,8651
|
|
@@ -538,18 +518,17 @@ tf_keras/src/saving/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKV
|
|
|
538
518
|
tf_keras/src/saving/object_registration.py,sha256=N8aV6eqREYjW2ueQpL3guYHyh5KXuun3DZAlmjfYrTA,7830
|
|
539
519
|
tf_keras/src/saving/pickle_utils.py,sha256=5GtHzwNWVaYfZ-0zn69-zn2yv3R6JUwzHOOamnjP7r0,2605
|
|
540
520
|
tf_keras/src/saving/saving_api.py,sha256=7uIWY4uwQMtETP5yRjZYPii-E-sWzSuK0ljVMfnZe_k,15119
|
|
541
|
-
tf_keras/src/saving/saving_lib.py,sha256=
|
|
521
|
+
tf_keras/src/saving/saving_lib.py,sha256=Ik1m_D1G7_Z3KMipmy5Mi8jhyWtOnJ6QbFY-VV5A2R0,24273
|
|
542
522
|
tf_keras/src/saving/serialization_lib.py,sha256=kX4qf_fRp4LySkH9FU37DMd0AXxiUrXKT-VLR3JPl7w,30152
|
|
543
523
|
tf_keras/src/saving/legacy/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
544
524
|
tf_keras/src/saving/legacy/hdf5_format.py,sha256=IqFXHN96fuqKwu_akaqTyf9ISRPavP3Ahjydat948O4,42438
|
|
545
525
|
tf_keras/src/saving/legacy/model_config.py,sha256=ZE6H_dKdmo2dlBWkr2nYO8SXcMEhshgza3sHPCpeu-k,4140
|
|
546
526
|
tf_keras/src/saving/legacy/save.py,sha256=TdjiEamZ8MAsPAWsYMEtrdCRppbHcBIwJh9eVfdUS3k,23612
|
|
547
|
-
tf_keras/src/saving/legacy/saving_utils.py,sha256=
|
|
527
|
+
tf_keras/src/saving/legacy/saving_utils.py,sha256=0iXchqZQNw9s5kB9_7SIj2p3Qd_21jdfHJQ3b3YVWQs,14042
|
|
548
528
|
tf_keras/src/saving/legacy/serialization.py,sha256=OrmHQPolQFsR-UCMxNTxkIFTKY4DKcAgMm1jdhF7TqU,22285
|
|
549
529
|
tf_keras/src/saving/legacy/saved_model/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
550
530
|
tf_keras/src/saving/legacy/saved_model/base_serialization.py,sha256=dALR19_zt4c80zVw3yjCj9wfRoJufDjCrvkJyS82Dnk,5104
|
|
551
531
|
tf_keras/src/saving/legacy/saved_model/constants.py,sha256=96ymvysCZ2Ru888YT_DEPMDgizHdDoBFGEOXsf-9AwE,1779
|
|
552
|
-
tf_keras/src/saving/legacy/saved_model/create_test_saved_model.py,sha256=mS5jmCsDwUFUKr08G0tphPSA5ZAd7illNyj3QXKejOA,1040
|
|
553
532
|
tf_keras/src/saving/legacy/saved_model/json_utils.py,sha256=WOyJaamx15lJ_V4XZSYM3RtuATa73uRNRM13o2s7yQ4,8071
|
|
554
533
|
tf_keras/src/saving/legacy/saved_model/layer_serialization.py,sha256=FQwNk2XJq8dzgoSAWrmcabglZTA-6oDPtfeLiGrZO6A,8418
|
|
555
534
|
tf_keras/src/saving/legacy/saved_model/load.py,sha256=wJUL0T4ZlUgxk3pZa_7E4NXEE3LXfjSKuGvTlrQchHc,57007
|
|
@@ -558,7 +537,7 @@ tf_keras/src/saving/legacy/saved_model/model_serialization.py,sha256=IxQ1TfBGagV
|
|
|
558
537
|
tf_keras/src/saving/legacy/saved_model/network_serialization.py,sha256=ofbKN9V3syw0AQebgy2PlvaiAHi3SnBFTg-PUgclTng,1180
|
|
559
538
|
tf_keras/src/saving/legacy/saved_model/order_preserving_set.py,sha256=zvNFzss8wSc0vngv74dNnQO_hxpxmEWWBBv1TTLsbPY,3250
|
|
560
539
|
tf_keras/src/saving/legacy/saved_model/save.py,sha256=2-AaGFhFxzfZLkIW1qx9-rTcaZvYMFkQYP7ijfwA-ZI,6395
|
|
561
|
-
tf_keras/src/saving/legacy/saved_model/save_impl.py,sha256=
|
|
540
|
+
tf_keras/src/saving/legacy/saved_model/save_impl.py,sha256=mcdNPwJYwzOsdSisgwkBEbnoSABEZdshN7BRmTttK2c,30420
|
|
562
541
|
tf_keras/src/saving/legacy/saved_model/serialized_attributes.py,sha256=nlmtIzLUBGSQU6gDKcg4-ypSRX3RbS4vPmLIhG3HSbk,15009
|
|
563
542
|
tf_keras/src/saving/legacy/saved_model/utils.py,sha256=2OCwun0U8nsZvxUbv7Toq2EeC1HU32LxnLDan8cw4Dc,9953
|
|
564
543
|
tf_keras/src/testing_infra/__init__.py,sha256=yrmnTOUMQ09fOgD3PD4NjpaeKz2OXCUmmoExRWhg9AY,690
|
|
@@ -567,7 +546,6 @@ tf_keras/src/testing_infra/test_combinations.py,sha256=ETwFTN8eBAusQpqU7dg_Qckb1
|
|
|
567
546
|
tf_keras/src/testing_infra/test_utils.py,sha256=SMEYejGPfYnZT2tVgzHL3gBHNGk6qcTu1qcZetHv870,40307
|
|
568
547
|
tf_keras/src/tests/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
569
548
|
tf_keras/src/tests/get_config_samples.py,sha256=qz2SZb_JIW2NoTak9NphLJkDTgYmlQ5RNm64T9wQ6L8,15307
|
|
570
|
-
tf_keras/src/tests/keras_doctest.py,sha256=qFPhxdstCjwGZw0JIKPMZ_PF-oBzEgP6EqZ9n_0mtio,4638
|
|
571
549
|
tf_keras/src/tests/model_architectures.py,sha256=83-y4n0LtvpcpXPgawvPGIcvaqaPZ_XgOVEDRgycLmw,10830
|
|
572
550
|
tf_keras/src/tests/model_subclassing_test_util.py,sha256=tMRAx38exGbDKEUd5kNDRn7Q-epiMPCAxdbAEGSCP6Y,5515
|
|
573
551
|
tf_keras/src/utils/__init__.py,sha256=HDp6YtwWY9al-pSjokrgj_IzsFi36TWQVGJp3ibTlws,3129
|
|
@@ -585,9 +563,9 @@ tf_keras/src/utils/io_utils.py,sha256=XhCTkjwtfBc2hWSenjVdt0-2PsIc2bjJVWEP1880NU
|
|
|
585
563
|
tf_keras/src/utils/keras_logging.py,sha256=Fv4eOMemx3Jg1hEdHIxx9GblG5YTnW1q1D1zLF3JxUE,882
|
|
586
564
|
tf_keras/src/utils/kernelized_utils.py,sha256=s475SAos2zHQ1NT9AHZmbWUSahHKOhdctP6uIou0nRo,4517
|
|
587
565
|
tf_keras/src/utils/kpl_test_utils.py,sha256=vnaJkySSTVhXsFEdDxNJArwXaah0yPNTK8o_3rYZvOE,7365
|
|
588
|
-
tf_keras/src/utils/layer_utils.py,sha256=
|
|
566
|
+
tf_keras/src/utils/layer_utils.py,sha256=cLKqiqJ2em16zZyXaXFErsL6yja28qE6kgPs2TTcdcY,43427
|
|
589
567
|
tf_keras/src/utils/losses_utils.py,sha256=oPHJSNLY8U57ieQD59vnGHNavZpMpeTZtL7VIlDwwfM,16919
|
|
590
|
-
tf_keras/src/utils/metrics_utils.py,sha256=
|
|
568
|
+
tf_keras/src/utils/metrics_utils.py,sha256=h4F4MGcHrpjthypj-nZ1n2szBrBZj4X0R9cEzMcx75w,39938
|
|
591
569
|
tf_keras/src/utils/mode_keys.py,sha256=_QYq58qr_b-RhvMYBYnL47NkC0G1ng8NYcVnS_IYi-A,856
|
|
592
570
|
tf_keras/src/utils/np_utils.py,sha256=4EZ58G1zThQfQEmMNBPnUYRszXRJoY4foxYhOGfS89s,4805
|
|
593
571
|
tf_keras/src/utils/object_identity.py,sha256=HZEETVcCoBrnIFjnxmBhZaCKP9xQMv9rMr_ihlMveVs,6879
|
|
@@ -606,7 +584,7 @@ tf_keras/src/utils/legacy/__init__.py,sha256=EfMmeHYDzwvxNaktPhQbkTdcPSIGCqMhBND
|
|
|
606
584
|
tf_keras/utils/__init__.py,sha256=b7_d-USe_EmLo02_P99Q1rUCzKBYayPCfiYFStP-0nw,2735
|
|
607
585
|
tf_keras/utils/experimental/__init__.py,sha256=DzGogE2AosjxOVILQBT8PDDcqbWTc0wWnZRobCdpcec,97
|
|
608
586
|
tf_keras/utils/legacy/__init__.py,sha256=7ujlDa5HeSRcth2NdqA0S1P2-VZF1kB3n68jye6Dj-8,189
|
|
609
|
-
tf_keras_nightly-2.
|
|
610
|
-
tf_keras_nightly-2.
|
|
611
|
-
tf_keras_nightly-2.
|
|
612
|
-
tf_keras_nightly-2.
|
|
587
|
+
tf_keras_nightly-2.21.0.dev2025123010.dist-info/METADATA,sha256=mMuSxuENfVse58L4xsGvhuHeJ_PYmN4HQTSCzIDhrQE,1857
|
|
588
|
+
tf_keras_nightly-2.21.0.dev2025123010.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
589
|
+
tf_keras_nightly-2.21.0.dev2025123010.dist-info/top_level.txt,sha256=LC8FK7zHDNKxB17C6lGKvrZ_fZZGJsRiBK23SfiDegY,9
|
|
590
|
+
tf_keras_nightly-2.21.0.dev2025123010.dist-info/RECORD,,
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ==============================================================================
|
|
15
|
-
"""Benchmark for KPL implementation of bucketized columns with dense inputs."""
|
|
16
|
-
|
|
17
|
-
import numpy as np
|
|
18
|
-
import tensorflow.compat.v2 as tf
|
|
19
|
-
|
|
20
|
-
import tf_keras.src as keras
|
|
21
|
-
from tf_keras.src.layers.preprocessing import discretization
|
|
22
|
-
from tf_keras.src.layers.preprocessing.benchmarks import (
|
|
23
|
-
feature_column_benchmark as fc_bm,
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
# isort: off
|
|
27
|
-
from tensorflow.python.eager.def_function import (
|
|
28
|
-
function as tf_function,
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
NUM_REPEATS = 10 # The number of times to run each benchmark.
|
|
32
|
-
BATCH_SIZES = [32, 256]
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
### KPL AND FC IMPLEMENTATION BENCHMARKS ###
|
|
36
|
-
def embedding_varlen(batch_size, max_length):
|
|
37
|
-
"""Benchmark a variable-length embedding."""
|
|
38
|
-
# Data and constants.
|
|
39
|
-
max_value = 25.0
|
|
40
|
-
bins = np.arange(1.0, max_value)
|
|
41
|
-
data = fc_bm.create_data(
|
|
42
|
-
max_length, batch_size * NUM_REPEATS, 100000, dtype=float
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
# TF-Keras implementation
|
|
46
|
-
model = keras.Sequential()
|
|
47
|
-
model.add(keras.Input(shape=(max_length,), name="data", dtype=tf.float32))
|
|
48
|
-
model.add(discretization.Discretization(bins))
|
|
49
|
-
|
|
50
|
-
# FC implementation
|
|
51
|
-
fc = tf.feature_column.bucketized_column(
|
|
52
|
-
tf.feature_column.numeric_column("data"), boundaries=list(bins)
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
# Wrap the FC implementation in a tf.function for a fair comparison
|
|
56
|
-
@tf_function()
|
|
57
|
-
def fc_fn(tensors):
|
|
58
|
-
fc.transform_feature(
|
|
59
|
-
tf.__internal__.feature_column.FeatureTransformationCache(tensors),
|
|
60
|
-
None,
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
# Benchmark runs
|
|
64
|
-
keras_data = {"data": data.to_tensor(default_value=0.0)}
|
|
65
|
-
k_avg_time = fc_bm.run_keras(keras_data, model, batch_size, NUM_REPEATS)
|
|
66
|
-
|
|
67
|
-
fc_data = {"data": data.to_tensor(default_value=0.0)}
|
|
68
|
-
fc_avg_time = fc_bm.run_fc(fc_data, fc_fn, batch_size, NUM_REPEATS)
|
|
69
|
-
|
|
70
|
-
return k_avg_time, fc_avg_time
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
class BenchmarkLayer(fc_bm.LayerBenchmark):
|
|
74
|
-
"""Benchmark the layer forward pass."""
|
|
75
|
-
|
|
76
|
-
def benchmark_layer(self):
|
|
77
|
-
for batch in BATCH_SIZES:
|
|
78
|
-
name = f"bucketized|dense|batch_{batch}"
|
|
79
|
-
k_time, f_time = embedding_varlen(batch_size=batch, max_length=256)
|
|
80
|
-
self.report(name, k_time, f_time, NUM_REPEATS)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if __name__ == "__main__":
|
|
84
|
-
tf.test.main()
|
|
85
|
-
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ==============================================================================
|
|
15
|
-
"""Benchmark for TF-Keras category_encoding preprocessing layer."""
|
|
16
|
-
|
|
17
|
-
import time
|
|
18
|
-
|
|
19
|
-
import numpy as np
|
|
20
|
-
import tensorflow.compat.v2 as tf
|
|
21
|
-
|
|
22
|
-
import tf_keras.src as keras
|
|
23
|
-
from tf_keras.src.layers.preprocessing import category_encoding
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class BenchmarkLayer(tf.test.Benchmark):
|
|
27
|
-
"""Benchmark the layer forward pass."""
|
|
28
|
-
|
|
29
|
-
def run_dataset_implementation(
|
|
30
|
-
self, output_mode, batch_size, sequence_length, max_tokens
|
|
31
|
-
):
|
|
32
|
-
input_t = keras.Input(shape=(sequence_length,), dtype=tf.int32)
|
|
33
|
-
layer = category_encoding.CategoryEncoding(
|
|
34
|
-
max_tokens=max_tokens, output_mode=output_mode
|
|
35
|
-
)
|
|
36
|
-
_ = layer(input_t)
|
|
37
|
-
|
|
38
|
-
num_repeats = 5
|
|
39
|
-
starts = []
|
|
40
|
-
ends = []
|
|
41
|
-
for _ in range(num_repeats):
|
|
42
|
-
ds = tf.data.Dataset.from_tensor_slices(
|
|
43
|
-
tf.random.uniform(
|
|
44
|
-
[batch_size * 10, sequence_length],
|
|
45
|
-
minval=0,
|
|
46
|
-
maxval=max_tokens - 1,
|
|
47
|
-
dtype=tf.int32,
|
|
48
|
-
)
|
|
49
|
-
)
|
|
50
|
-
ds = ds.shuffle(batch_size * 100)
|
|
51
|
-
ds = ds.batch(batch_size)
|
|
52
|
-
num_batches = 5
|
|
53
|
-
ds = ds.take(num_batches)
|
|
54
|
-
ds = ds.prefetch(num_batches)
|
|
55
|
-
starts.append(time.time())
|
|
56
|
-
# Benchmarked code begins here.
|
|
57
|
-
for i in ds:
|
|
58
|
-
_ = layer(i)
|
|
59
|
-
# Benchmarked code ends here.
|
|
60
|
-
ends.append(time.time())
|
|
61
|
-
|
|
62
|
-
avg_time = np.mean(np.array(ends) - np.array(starts)) / num_batches
|
|
63
|
-
name = "category_encoding|batch_%s|seq_length_%s|%s_max_tokens" % (
|
|
64
|
-
batch_size,
|
|
65
|
-
sequence_length,
|
|
66
|
-
max_tokens,
|
|
67
|
-
)
|
|
68
|
-
self.report_benchmark(iters=num_repeats, wall_time=avg_time, name=name)
|
|
69
|
-
|
|
70
|
-
def benchmark_vocab_size_by_batch(self):
|
|
71
|
-
for batch in [32, 256, 2048]:
|
|
72
|
-
for sequence_length in [10, 1000]:
|
|
73
|
-
for num_tokens in [100, 1000, 20000]:
|
|
74
|
-
self.run_dataset_implementation(
|
|
75
|
-
output_mode="count",
|
|
76
|
-
batch_size=batch,
|
|
77
|
-
sequence_length=sequence_length,
|
|
78
|
-
max_tokens=num_tokens,
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if __name__ == "__main__":
|
|
83
|
-
tf.test.main()
|
|
84
|
-
|