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
  • Распределенное обучение с Core API и DTensor
  • Распределенное обучение с DTensor
  • Значительное число невыявленных случаев инфекции способствует быстрому распространению нового коронавируса (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