Spec-Zone.ru › TensorFlow 1.15

tf.contrib.framework.nest.map_structure_up_to

Применяет функцию или операцию к ряду частично сплющенных входных данных.

tf.contrib.framework.nest.map_structure_up_to(
    shallow_tree, func, *inputs, **kwargs
)

Входные данные inputs сплющиваются до shallow_tree перед применением функции.

Случай использования:

Иногда нам нужно применить функцию к частично сплющенной последовательности (например, когда сама функция принимает последовательные входные данные). Это достигается указанием поверхностной структуры, shallow_tree до которой нужно сплющить.

Входные данные inputs, можно рассматривать как имеющие ту же структуру, что и shallow_tree, но с листовыми узлами, которые сами являются древовидными структурами.

Таким образом, эта функция вернет результат с такой же базовой структурой, как у shallow_tree.

Примеры:

shallow_tree = [None, None]
inp_val = [1, 2, 3]
out = map_structure_up_to(shallow_tree, lambda x: 2 * x, inp_val)

# Output is: [2, 4]
ab_tuple = collections.namedtuple("ab_tuple", "a, b")
op_tuple = collections.namedtuple("op_tuple", "add, mul")
inp_val = ab_tuple(a=2, b=3)
inp_ops = ab_tuple(a=op_tuple(add=1, mul=2), b=op_tuple(add=2, mul=3))
out = map_structure_up_to(inp_val, lambda val, ops: (val + ops.add) * ops.mul,
                          inp_val, inp_ops)

# Output is: ab_tuple(a=6, b=15)
data_list = [[2, 4, 6, 8], [[1, 3, 5, 7, 9], [3, 5, 7]]]
name_list = ['evens', ['odds', 'primes']]
out = map_structure_up_to(
    name_list,
    lambda name, sec: "first_{}_{}".format(len(sec), name),
    name_list, data_list)

# Output is: ['first_4_evens', ['first_5_odds', 'first_3_primes']]
Аргументы
shallow_tree поверхностное дерево, общее для всех входных данных.
func вызываемая функция, которая будет применена к каждому входному значению индивидуально.
*inputs произвольно вложенная комбинация объектов, совместимых с поверхностным деревом. Функция func применяется к соответствующим частично сплющенным элементам каждого входа, поэтому функция должна поддерживать арность len(inputs).
**kwargs ключевые слова для передачи в func(). Специальный ключевой параметр check_types не передается в func, а вместо этого определяет, должны ли типы итерируемых объектов внутри структур совпадать (например, map_structure(func, [1], (1,)) вызывает исключение TypeError). Чтобы разрешить это, установите этот параметр в False.
Исключения
TypeError Если shallow_tree является последовательностью, но input_tree нет.
TypeError Если типы последовательностей shallow_tree отличаются от input_tree.
ValueError Если длины последовательностей shallow_tree отличаются от input_tree.
Возвращаемое значение
результат многократного применения func, с такой же структурой, как у shallow_tree.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/framework/nest/map_structure_up_to

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API