tf.experimental.Optional
Представляет значение, которое может или не может присутствовать.
Тип tf.experimental.Optional может представлять результат операции, которая может завершиться ошибкой как значение, а не вызывать исключение и останавливать выполнение. Например, tf.data.Iterator.get_next_as_optional() возвращает tf.experimental.Optional, который либо содержит следующий элемент итератора, если он существует, либо пустое значение, которое указывает, что конец последовательности достигнут.
tf.experimental.Optional может использоваться только со значениями, которые могут быть преобразованы в tf.Tensor или tf.CompositeTensor.
Можно создать tf.experimental.Optional из значения, используя метод from_value():
optional = tf.experimental.Optional.from_value(42) print(optional.has_value()) tf.Tensor(True, shape=(), dtype=bool) print(optional.get_value()) tf.Tensor(42, shape=(), dtype=int32)
или без значения, используя метод empty():
optional = tf.experimental.Optional.empty( tf.TensorSpec(shape=(), dtype=tf.int32, name=None)) print(optional.has_value()) tf.Tensor(False, shape=(), dtype=bool)
| Атрибуты | |
|---|---|
element_spec | Спецификация типа элемента этого optional. optional = tf.experimental.Optional.from_value(42) print(optional.element_spec) tf.TensorSpec(shape=(), dtype=tf.int32, name=None) |
Методы
empty
@staticmethod
empty(
element_spec
)
Возвращает Optional без значения.
Примечание: Этот метод принимает аргумент, который определяет структуру значения, которое будет содержаться в возвращаемом Optional при наличии значения.
optional = tf.experimental.Optional.empty( tf.TensorSpec(shape=(), dtype=tf.int32, name=None)) print(optional.has_value()) tf.Tensor(False, shape=(), dtype=bool)
| Аргументы | |
|---|---|
element_spec | (Вложенная) структура объектов tf.TypeSpec, соответствующая структуре элемента этого optional. |
| Возвращаемое значение | |
|---|---|
tf.experimental.Optional без значения. |
from_value
@staticmethod
from_value(
value
)
Возвращает tf.experimental.Optional, который оборачивает заданное значение.
optional = tf.experimental.Optional.from_value(42) print(optional.has_value()) tf.Tensor(True, shape=(), dtype=bool) print(optional.get_value()) tf.Tensor(42, shape=(), dtype=int32)
| Аргументы | |
|---|---|
value | Значение для обертывания. Значение должно быть преобразуемо в tf.Tensor или tf.CompositeTensor. |
| Возвращаемое значение | |
|---|---|
tf.experimental.Optional, который оборачивает value. |
get_value
@abc.abstractmethod
get_value(
name=None
)
Возвращает значение, обернутое этим optional.
Если у этого optional нет значения (т.е. self.has_value() равно False), эта операция вызовет tf.errors.InvalidArgumentError во время выполнения.
optional = tf.experimental.Optional.from_value(42) print(optional.get_value()) tf.Tensor(42, shape=(), dtype=int32)
| Аргументы | |
|---|---|
name | (Необязательно.) Имя создаваемой операции. |
| Возвращаемое значение | |
|---|---|
| Обернутое значение. |
has_value
@abc.abstractmethod
has_value(
name=None
)
Возвращает тензор, который вычисляется как True если у этого optional есть значение.
optional = tf.experimental.Optional.from_value(42) print(optional.has_value()) tf.Tensor(True, shape=(), dtype=bool)
| Аргументы | |
|---|---|
name | (Необязательно.) Имя создаваемой операции. |
| Возвращаемое значение | |
|---|---|
Скалярный tf.Tensor типа tf.bool. |
© 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/versions/r2.9/api_docs/python/tf/experimental/Optional