tf.OptionalSpec  |  TensorFlow v2.16.1 (original) (raw)

tf.OptionalSpec

Stay organized with collections Save and categorize content based on your preferences.

Type specification for tf.experimental.Optional.

Inherits From: TypeSpec, TraceType

View aliases

Compat aliases for migration

SeeMigration guide for more details.

tf.compat.v1.OptionalSpec, tf.compat.v1.data.experimental.OptionalStructure

tf.OptionalSpec(
    element_spec
)

For instance, tf.OptionalSpec can be used to define a tf.function that takestf.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.

Methods

experimental_as_proto

View source

experimental_as_proto() -> struct_pb2.TypeSpecProto

Returns a proto representation of the TypeSpec instance.

Do NOT override for custom non-TF types.

experimental_from_proto

View source

@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

View source

@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

View source

@staticmethod from_value( value )

is_compatible_with

View source

is_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_of

View source

is_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_supertype

View source

most_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_type

View source

most_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 selfand other.

__eq__

View source

__eq__(
    other
) -> bool

Return self==value.

__ne__

View source

__ne__(
    other
) -> bool

Return self!=value.