tf.nest.map_structure
| Просмотреть исходный код на GitHub |
Создаёт новую структуру, применяя func к каждому атому в 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 | Допустимые ключевые аргументы:
|
| Возвращает | |
|---|---|
Новая структура с такой же арностью, как 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