Spec-Zone.ru › TensorFlow 2.9

Модуль: tf.compat.v1.nest

Функции, работающие со структурами.

Структура — это либо:

  • одно из распознанных Python-коллекций, содержащих вложенные структуры;
  • значение любого другого типа, обычно тип данных TensorFlow, например, Tensor, Variable или совместимые типы, такие как int, float, ndarray и т. д. Эти типы обычно называются атомами структуры.

Структура типа T — это структура, атомарные элементы которой имеют тип T. Например, структура типа tf.Tensor содержит только tf.Tensor в качестве своих атомов.

Исторически вложенная структура в TensorFlow называлась вложенной последовательностью. Вложенную структуру иногда называют гнездом или деревом, но предпочтительное формальное название — вложенная структура.

Обратитесь к Структурам данных со вложенностью.

Следующие типы коллекций распознаются tf.nest как вложенные структуры:

  • collections.abc.Sequence (кроме string и bytes). Это включает list, tuple, и namedtuple.
  • collections.abc.Mapping (с сортируемыми ключами). Это включает dict и collections.OrderedDict.
  • collections.abc.MappingView (с сортируемыми ключами).
  • attr.s классы.

Любые другие значения считаются атомами. Не все типы коллекций считаются вложенными структурами. Например, следующие типы считаются атомами:

  • set; {"a", "b"} — это атом, а ["a", "b"] — вложенная структура.
  • dataclass классы
  • tf.Tensor
  • numpy.array

tf.nest.is_nested проверяет, является ли объект вложенной структурой или атомом. Например:

tf.nest.is_nested("1234")
  False
tf.nest.is_nested([1, 3, [4, 5]])
  True
tf.nest.is_nested(((7, 8), (5, 6)))
  True
tf.nest.is_nested([])
  True
tf.nest.is_nested({"a": 1, "b": 2})
  True
tf.nest.is_nested({"a": 1, "b": 2}.keys())
  True
tf.nest.is_nested({"a": 1, "b": 2}.values())
  True
tf.nest.is_nested({"a": 1, "b": 2}.items())
  True
tf.nest.is_nested(set([1, 2]))
  False
ones = tf.ones([2, 3])
tf.nest.is_nested(ones)
  False
  
Примечание: Правильная структура должна образовывать дерево. Пользователь должен убедиться, что в элементах структуры нет циклических ссылок, т. е. в структуре входных данных этих функций не должно быть рекурсивных ссылок. Поведение не определено, если цикл существует.

Функции

assert_same_structure(...): Утверждает, что две структуры вложены одинаково.

flatten(...): Возвращает плоский список из заданной структуры.

is_nested(...): Возвращает true, если вход — вложенная структура.

map_structure(...): Создает новую структуру, применяя func к каждому атому в structure.

pack_sequence_as(...): Возвращает заданную уплощенную последовательность, упакованную в заданную структуру.

© 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/compat/v1/nest

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API