tf.nest.map_structure
Создает новую структуру, применяя 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/api_docs/python/tf/nest/map_structure