in tensorflow_hub/keras_layer.py [0:0]
def __init__(
self,
handle,
trainable=False,
arguments=None,
_sentinel=None, # pylint: disable=invalid-name
tags=None,
signature=None,
signature_outputs_as_dict=None,
output_key=None,
output_shape=None,
load_options=None,
**kwargs):
# Note: for compatibility with keras-model serialization this layer is
# json-serializable. If you add or change arguments here, please also update
# the `get_config` method.
# The arguments are marked NoDependency to avoid autoconversion to a
# trackable _DictWrapper, because that upsets json.dumps() when saving
# the result of get_config().
self._handle = handle
self._arguments = data_structures.NoDependency(arguments or {})
self._signature = signature
self._signature_outputs_as_dict = signature_outputs_as_dict
self._output_key = output_key
if output_shape:
# Autograph chokes on _convert_nest_to_shapes(), so we call it here
# and not from within call().
self._output_shape = data_structures.NoDependency(
_convert_nest_to_shapes(output_shape))
self._load_options = load_options
self._func = load_module(handle, tags, self._load_options)
self._is_hub_module_v1 = getattr(self._func, "_is_hub_module_v1", False)
# Update with the defaults when using legacy TF1 Hub format.
if self._is_hub_module_v1:
self._signature = self._signature or "default"
if not self._signature_outputs_as_dict:
self._output_key = self._output_key or "default"
# More validity checks.
if self._signature and (bool(self._output_key is not None)
== bool(self._signature_outputs_as_dict)):
raise ValueError("When using a signature, either output_key or "
"signature_outputs_as_dict=True should be set.")
if not self._signature and self._signature_outputs_as_dict:
raise ValueError("signature_outputs_as_dict is only valid if specifying "
"a signature (or using a legacy TF1 Hub format).")
self._callable = self._get_callable()
self._has_training_argument = func_has_training_argument(self._callable)
self._setup_layer(trainable, **kwargs)