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/api_docs/python/tf/experimental/Optional