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