tf.TypeSpec
Задает тип значения TensorFlow.
Наследуется от: TraceType
tf.TypeSpec предоставляет метаданные, описывающие объект, принимаемый или возвращаемый API TensorFlow. Конкретные подклассы, такие как tf.TensorSpec и tf.RaggedTensorSpec, используются для описания различных типов значений.
Например, аргумент input_signature функции tf.function принимает список (или вложенную структуру) объектов TypeSpec.
В настоящее время создание новых подклассов TypeSpec (за пределами ядра TensorFlow) не поддерживается. В частности, мы можем внести несовместимые изменения в закрытые методы и свойства, определенные этим базовым классом.
Пример:
spec = tf.TensorSpec(shape=[None, None], dtype=tf.int32)
@tf.function(input_signature=[spec])
def double(x):
return x * 2
double(tf.constant([[1, 2], [3, 4]]))
<tf.Tensor: shape=(2, 2), dtype=int32,
numpy=array([[2, 4], [6, 8]], dtype=int32)>| Атрибуты | |
|---|---|
value_type | Тип Python для значений, совместимых с этим TypeSpec. В частности, все значения, совместимые с этим TypeSpec, должны быть экземплярами этого типа. |
Методы
experimental_as_proto
experimental_as_proto() -> struct_pb2.TypeSpecProto
Возвращает представление экземпляра TypeSpec в виде proto.
НЕ переопределяйте для пользовательских типов, не относящихся к TensorFlow.
experimental_from_proto
@classmethod
experimental_from_proto(
proto: struct_pb2.TypeSpecProto
) -> 'TypeSpec'
Возвращает экземпляр TypeSpec на основе сериализованного proto.
НЕ переопределяйте для пользовательских типов, не относящихся к TensorFlow.
| Аргументы | |
|---|---|
proto | Proto, созданный с помощью 'experimental_as_proto'. |
experimental_type_proto
@classmethod experimental_type_proto() -> Type[struct_pb2.TypeSpecProto]
Возвращает тип proto, связанный с сериализацией TypeSpec.
НЕ переопределяйте для пользовательских типов, не относящихся к TensorFlow.
is_compatible_with
is_compatible_with(
spec_or_value
)
Возвращает значение true, если spec_or_value совместим с этим TypeSpec.
По возможности предпочитайте использовать «is_subtype_of» и «most_specific_common_supertype».
| Аргументы | |
|---|---|
spec_or_value | TypeSpec или значение, связанное с TypeSpec, для сравнения. |
is_subtype_of
is_subtype_of(
other: tf.types.experimental.TraceType
) -> bool
Возвращает True, если self является подтипом other.
Реализует интерфейс tf.types.experimental.func.TraceType.
Если подкласс не переопределяет поведение по умолчанию, предполагается, что TypeSpec ковариантен относительно атрибутов, реализующих TraceType, и инвариантен относительно остальных атрибутов, а также структуры и типа TypeSpec.
| Аргументы | |
|---|---|
other | Объект TraceType. |
most_specific_common_supertype
most_specific_common_supertype(
others: Sequence[tf.types.experimental.TraceType]
) -> Optional['TypeSpec']
Возвращает наиболее специфичный супертип TypeSpec для self и others.
Реализует интерфейс tf.types.experimental.func.TraceType.
Если подкласс не переопределяет поведение по умолчанию, предполагается, что TypeSpec ковариантен относительно атрибутов, реализующих TraceType, и инвариантен относительно остальных атрибутов, а также структуры и типа TypeSpec.
| Аргументы | |
|---|---|
others | Последовательность объектов TraceType. |
most_specific_compatible_type
most_specific_compatible_type(
other: 'TypeSpec'
) -> 'TypeSpec'
Возвращает наиболее специфичный TypeSpec, совместимый с self и other. (устарело)
Устарело. Используйте вместо этого most_specific_common_supertype. Не переопределяйте эту функцию.
| Аргументы | |
|---|---|
other | Объект TypeSpec. |
| Исключения | |
|---|---|
ValueError | Если не существует TypeSpec, совместимого одновременно с self и other. |
__eq__
__eq__(
other
) -> bool
Возвращает результат self==value.
__ne__
__ne__(
other
) -> bool
Возвращает результат 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/TypeSpec