Spec-Zone.ru › TensorFlow

tf.nest.map_structure

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

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

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

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

tf.compat.v1.nest.map_structure

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

Используется в блокнотах

Используется в руководстве Используется в учебниках
  • Импорт модели JAX с помощью JAX2TF
  • Распределённое обучение с помощью основных API и DTensor
  • Распределённое обучение с DTensors
  • Существенная недокументированная инфекция способствует быстрому распространению нового коронавируса (SARS-CoV2)
  • Использование оптимизаторов TFF в пользовательском итерационном процессе
  • Вариационное вычисление вероятностных графовых моделей с совместными распределениями
  • Компоновка алгоритмов обучения

Обратитесь к 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/api_docs/python/tf/nest/map_structure

Spec-Zone.ru

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