Type specification for tf.experimental.Optional.
Inherits From: TypeSpec, TraceType
tf.OptionalSpec(
element_spec
)
For instance, tf.OptionalSpec can be used to define a tf.function that takes tf.experimental.Optional as an input argument:
@tf.function(input_signature=[tf.OptionalSpec(
tf.TensorSpec(shape=(), dtype=tf.int32, name=None))])
def maybe_square(optional):
if optional.has_value():
x = optional.get_value()
return x * x
return -1
optional = tf.experimental.Optional.from_value(5)
print(maybe_square(optional))
tf.Tensor(25, shape=(), dtype=int32)| Attributes | |
|---|---|
element_spec | A (nested) structure of TypeSpec objects that represents the type specification of the optional element. |
value_type | The Python type for values that are compatible with this TypeSpec. In particular, all values that are compatible with this TypeSpec must be an instance of this type. |
experimental_as_protoexperimental_as_proto() -> struct_pb2.TypeSpecProto
Returns a proto representation of the TypeSpec instance.
Do NOT override for custom non-TF types.
experimental_from_proto@classmethod
experimental_from_proto(
proto: struct_pb2.TypeSpecProto
) -> 'TypeSpec'
Returns a TypeSpec instance based on the serialized proto.
Do NOT override for custom non-TF types.
| Args | |
|---|---|
proto | Proto generated using 'experimental_as_proto'. |
experimental_type_proto@classmethod experimental_type_proto() -> Type[struct_pb2.TypeSpecProto]
Returns the type of proto associated with TypeSpec serialization.
Do NOT override for custom non-TF types.
from_value@staticmethod
from_value(
value
)
is_compatible_withis_compatible_with(
spec_or_value
)
Returns true if spec_or_value is compatible with this TypeSpec.
Prefer using "is_subtype_of" and "most_specific_common_supertype" wherever possible.
| Args | |
|---|---|
spec_or_value | A TypeSpec or TypeSpec associated value to compare against. |
is_subtype_ofis_subtype_of(
other: tf.types.experimental.TraceType
) -> bool
Returns True if self is a subtype of other.
Implements the tf.types.experimental.func.TraceType interface.
If not overridden by a subclass, the default behavior is to assume the TypeSpec is covariant upon attributes that implement TraceType and invariant upon rest of the attributes as well as the structure and type of the TypeSpec.
| Args | |
|---|---|
other | A TraceType object. |
most_specific_common_supertypemost_specific_common_supertype(
others: Sequence[tf.types.experimental.TraceType]
) -> Optional['TypeSpec']
Returns the most specific supertype TypeSpec of self and others.
Implements the tf.types.experimental.func.TraceType interface.
If not overridden by a subclass, the default behavior is to assume the TypeSpec is covariant upon attributes that implement TraceType and invariant upon rest of the attributes as well as the structure and type of the TypeSpec.
| Args | |
|---|---|
others | A sequence of TraceTypes. |
most_specific_compatible_typemost_specific_compatible_type(
other: 'TypeSpec'
) -> 'TypeSpec'
Returns the most specific TypeSpec compatible with self and other. (deprecated)
Deprecated. Please use most_specific_common_supertype instead. Do not override this function.
| Args | |
|---|---|
other | A TypeSpec. |
| Raises | |
|---|---|
ValueError | If there is no TypeSpec that is compatible with both self and other. |
__eq____eq__(
other
) -> bool
Return self==value.
__ne____ne__(
other
) -> bool
Return self!=value.
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/OptionalSpec