tf.TensorSpec
Описание типа tf.Tensor.
Наследуется от: TypeSpec, TraceType
tf.TensorSpec(
shape,
dtype=tf.dtypes.float32,
name=None
)
Используется в блокнотах
| Используется в руководстве | Используется в учебных пособиях |
|---|---|
t = tf.constant([[1,2,3],[4,5,6]]) tf.TensorSpec.from_tensor(t) TensorSpec(shape=(2, 3), dtype=tf.int32, name=None)
Содержит метаданные для описания природы tf.Tensor объектов, принимаемых или возвращаемых некоторыми API TensorFlow.
Например, его можно использовать для ограничения типа входных данных, принимаемых tf.function:
@tf.function(input_signature=[tf.TensorSpec([1, None])])
def constrained_foo(t):
print("tracing...")
return tТеперь tf.function может предположить, что t всегда имеет тип tf.TensorSpec([1, None]), что позволит избежать повторного прослеживания, а также обеспечить ограничение типа входных данных.
В результате следующий вызов с тензором типа tf.TensorSpec([1, 2]) запускает прослеживание и завершается успешно:
>>> constrained_foo(tf.constant([[1., 2]])).numpy() tracing... array([[1., 2.]], dtype=float32)
Следующий последующий вызов с тензором типа tf.TensorSpec([1, 4]) не запускает прослеживание и завершается успешно:
>>> constrained_foo(tf.constant([[1., 2, 3, 4]])).numpy() array([[1., 2., 3., 4.], dtype=float32)
Но следующий вызов с тензором типа tf.TensorSpec([2, 2]) завершается неудачно:
>>> constrained_foo(tf.constant([[1., 2], [3, 4]])).numpy() Traceback (most recent call last): ... TypeError: Binding inputs to tf.function `constrained_foo` failed ...
| Аргументы | |
|---|---|
shape | Значение, преобразуемое в tf.TensorShape. Форма тензора. |
dtype | Значение, преобразуемое в tf.DType. Тип значений тензора. |
name | Необязательное имя для тензора. |
| Возможные исключения | |
|---|---|
TypeError | Если форма не может быть преобразована в tf.TensorShape, или тип данных не может быть преобразован в tf.DType. |
| Атрибуты | |
|---|---|
dtype | Возвращает dtype элементов в тензоре. |
name | Возвращает (необязательное) имя описанного тензора. |
shape | Возвращает TensorShape, представляющий форму тензора. |
value_type | Тип Python для значений, совместимых с этим TypeSpec. |
Методы
experimental_as_proto
experimental_as_proto() -> struct_pb2.TensorSpecProto
Возвращает представление прото объекта TensorSpec.
experimental_from_proto
@classmethod
experimental_from_proto(
proto: struct_pb2.TensorSpecProto
) -> 'TensorSpec'
Возвращает объект TensorSpec на основе сериализованного прото.
experimental_type_proto
@classmethod experimental_type_proto() -> Type[struct_pb2.TensorSpecProto]
Возвращает тип прото, связанный с сериализацией TensorSpec.
from_spec
@classmethod
from_spec(
spec, name=None
)
Возвращает TensorSpec с той же формой и типом данных, что и spec.
spec = tf.TensorSpec(shape=[8, 3], dtype=tf.int32, name="OriginalName") tf.TensorSpec.from_spec(spec, "NewName") TensorSpec(shape=(8, 3), dtype=tf.int32, name='NewName')
| Аргументы | |
|---|---|
spec | TypeSpec, используемый для создания нового TensorSpec. |
name | Имя для нового TensorSpec. По умолчанию spec.name. |
from_tensor
@classmethod
from_tensor(
tensor, name=None
)
Возвращает TensorSpec, описывающее tensor.
tf.TensorSpec.from_tensor(tf.constant([1, 2, 3])) TensorSpec(shape=(3,), dtype=tf.int32, name=None)
| Аргументы | |
|---|---|
tensor | tf.Tensor, который должен быть описан. |
name | Имя для TensorSpec. По умолчанию tensor.op.name. |
| Возвращаемое значение | |
|---|---|
TensorSpec, описывающее tensor. |
is_compatible_with
is_compatible_with(
spec_or_tensor
)
Возвращает True, если spec_or_tensor совместим с этим TensorSpec.
Два тензора считаются совместимыми, если у них одинаковый тип данных и их формы совместимы (см. tf.TensorShape.is_compatible_with).
| Аргументы | |
|---|---|
spec_or_tensor | tf.TensorSpec или tf.Tensor |
| Возвращаемое значение | |
|---|---|
| True, если spec_or_tensor совместим с self. |
is_subtype_of
is_subtype_of(
other
)
Возвращает 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.
| Args | |
|---|---|
others | Последовательность TraceTypes. |
most_specific_compatible_type
most_specific_compatible_type(
other: 'TypeSpec'
) -> 'TypeSpec'
Возвращает наиболее специфичный совместимый TypeSpec с self и other. (устарело)
Устарело. Пожалуйста, используйте most_specific_common_supertype вместо этого. Не переопределяйте эту функцию.
| Args | |
|---|---|
other | A TypeSpec. |
| Raises | |
|---|---|
ValueError | Если нет TypeSpec, совместимого с обоими self и other. |
__eq__
__eq__(
other
)
Возвращает self==value.
__ne__
__ne__(
other
)
Возвращает 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/TensorSpec