Применяет 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}
Функция, принимающая столько аргументов, сколько структур.
*structure
скаляр, или кортеж или словарь или список построенных скаляров и/или других кортежей/списков или скаляров. Примечание: массивы numpy рассматриваются как скаляры.
**kwargs
Допустимые ключевые аргументы:
check_types: Если установлено в True (по умолчанию), типы итерируемых элементов в структурах должны быть одинаковыми (например, map_structure(func, [1], (1,)) вызывает исключение TypeError). Чтобы разрешить это, установите этот аргумент в False. Обратите внимание, что именованные кортежи с одинаковым именем и полями всегда считаются имеющими одинаковую структуру.
expand_composites: Если установлено в True, составные тензоры, такие как tf.sparse.SparseTensor и tf.RaggedTensor, расширяются в свои составные тензоры. Если False (по умолчанию), составные тензоры не расширяются.
Возвращаемое значение
Новая структура с такой же арностью, как у structure, значения которой соответствуют func(x[0], x[1], ...) , где x[i] — значение в соответствующем месте в structure[i]. Если есть разные типы последовательностей и check_types — False, будут использоваться типы последовательностей из первой структуры.
Исключения
TypeError
Если func не вызываемый или если структуры не соответствуют друг другу по глубине дерева.
ValueError
Если структура не предоставлена или если структуры не соответствуют друг другу по типу.
ValueError
Если предоставлены неправильные ключевые аргументы.