РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
790 of 824 menu

Функция nest.map_structure

Функция nest.map_structure применяется к вложенной структуре данных, такой как список, кортеж или словарь. Первым параметром функция принимает вызываемую функцию, которая будет применена к каждому элементу структуры. Вторым параметром передается сама вложенная структура. Дополнительные структуры можно передать третьим, четвертым и последующими параметрами, и тогда вызываемая функция должна принимать соответствующее число аргументов.

Синтаксис

tf.nest.map_structure(func, *structure, **kwargs)

Пример

Давайте применим функцию lambda, умножающую число на два, к каждому элементу вложенной структуры:

import tensorflow as tf structure = [[1, 2], [3, 4]] res = tf.nest.map_structure(lambda x: x * 2, structure) print(res)

Результат выполнения кода:

[[2, 4], [6, 8]]

Пример

Давайте применим функцию к словарю, содержащему тензоры:

import tensorflow as tf structure = {'a': tf.constant([1, 2, 3, 4, 5]), 'b': tf.constant([6, 7, 8, 9, 10])} res = tf.nest.map_structure(lambda x: x + 1, structure) print(res)

Результат выполнения кода:

{'a': <tf.Tensor: shape=(5,), dtype=int32, numpy=array([2, 3, 4, 5, 6], dtype=int32)>, 'b': <tf.Tensor: shape=(5,), dtype=int32, numpy=array([7, 8, 9, 10, 11], dtype=int32)>}

Пример

Давайте применим функцию к нескольким структурам одновременно:

import tensorflow as tf s1 = [1, 2, 3] s2 = [4, 5, 6] res = tf.nest.map_structure(lambda x, y: x + y, s1, s2) print(res)

Результат выполнения кода:

[5, 7, 9]

Пример

Давайте применим функцию к тензору внутри вложенной структуры:

import tensorflow as tf structure = {'x': [tf.constant([[1, 2, 3], [4, 5, 6]]), tf.constant([1, 2, 3, 4, 5])]} res = tf.nest.map_structure(lambda t: tf.reduce_sum(t), structure) print(res)

Результат выполнения кода:

{'x': [<tf.Tensor: shape=(), dtype=int32, numpy=21>, <tf.Tensor: shape=(), dtype=int32, numpy=15>]}

Смотрите также

  • функцию nest.flatten,
    которая преобразует вложенную структуру в плоский список
  • функцию nest.pack_sequence_as,
    которая упаковывает плоский список обратно в структуру
  • функцию nest.assert_same_structure,
    которая проверяет совпадение структур
  • функцию nest.is_nested,
    которая проверяет, является ли объект вложенной структурой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить