tf.experimental.Optional
Представляет значение, которое может или не может присутствовать.
A 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. |
| Возвращаемое значение | |
|---|---|
A 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. |
| Возвращаемое значение | |
|---|---|
A 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. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/experimental/Optional