Spec-Zone.ru › TensorFlow 2.9

tf.nest.map_structure

Просмотреть исходный код на GitHub

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

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.nest.map_structure

tf.nest.map_structure(
    func, *structure, **kwargs
)

Обратитесь к tf.nest для определения структуры.

Применяет func(x[0], x[1], ...), где x[i] перечисляет все атомы в structure[i]. Все элементы в structure должны иметь одинаковую арность, и возвращаемое значение будет содержать результаты с одинаковым расположением структуры.

Примеры:

  • Один Python словарь:
a = {"hello": 24, "world": 76}
tf.nest.map_structure(lambda p: p * 2, a)
{'hello': 48, 'world': 152}
  • Несколько Python словарей:
d1 = {"hello": 24, "world": 76}
d2 = {"hello": 36, "world": 14}
tf.nest.map_structure(lambda p1, p2: p1 + p2, d1, d2)
{'hello': 60, 'world': 90}
  • Один Python список:
a = [24, 76, "ab"]
tf.nest.map_structure(lambda p: p * 2, a)
[48, 152, 'abab']
  • Скаляры:
tf.nest.map_structure(lambda x, y: x + y, 3, 4)
7
  • Пустые структуры:
tf.nest.map_structure(lambda x: x + 1, ())
()
  • Проверка типов итерируемых объектов:
s1 = (((1, 2), 3), 4, (5, 6))
s1_list = [[[1, 2], 3], 4, [5, 6]]
tf.nest.map_structure(lambda x, y: None, s1, s1_list)
Traceback (most recent call last):

TypeError: The two structures don't have the same nested structure
  • Проверка типов отключена:
s1 = (((1, 2), 3), 4, (5, 6))
s1_list = [[[1, 2], 3], 4, [5, 6]]
tf.nest.map_structure(lambda x, y: None, s1, s1_list, check_types=False)
(((None, None), None), None, (None, None))
Аргументы
func Функция, которая принимает столько аргументов, сколько структур.
*structure Атом или вложенная структура.
**kwargs Допустимые ключевые аргументы:
  • check_types: Если установлено значение True (по умолчанию), типы итерируемых объектов внутри структур должны быть одинаковыми (например, map_structure(func, [1], (1,)) генерирует исключение TypeError). Для разрешения этого установите данный аргумент в False. Обратите внимание, что кортежи с именем с одинаковым именем и полями всегда считаются имеющими одинаковую структуру.
  • expand_composites: Если установлено значение True, составные тензоры, такие как tf.sparse.SparseTensor и tf.RaggedTensor, расширяются в свои компоненты тензоров. Если False (по умолчанию), составные тензоры не расширяются.
Возвращает
Новая структура с такой же арностью, как structure[0], атомы которой соответствуют func(x[0], x[1], ...), где x[i] — атом в соответствующей позиции в structure[i]. Если типы структур разные и check_types имеет значение False, типы структуры первой структуры будут использоваться.
Исключения
TypeError Если func не является вызываемым или структуры не совпадают по глубине дерева.
ValueError Если структура не задана или структуры не совпадают по типу.
ValueError Если заданы неправильные ключевые аргументы.

© 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/nest/map_structure

Spec-Zone.ru

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