Функция nest.flatten
Функция nest.flatten разворачивает
вложенную структуру данных в плоский список.
Первым параметром функция принимает структуру:
список, кортеж, словарь или их комбинацию.
Вторым параметром можно передать функцию
expand_composites, которая определяет,
нужно ли разворачивать составные тензоры
до их внутренних компонентов.
Синтаксис
tf.nest.flatten(structure, [expand_composites])
Пример
Давайте развернем простой список чисел:
import tensorflow as tf
res = tf.nest.flatten([1, 2, 3, 4, 5])
print(res)
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте развернем вложенную структуру из списка и кортежа:
<+python+>
import tensorflow as tf
structure = [1, [2, 3], (4, 5)]
res = tf.nest.flatten(structure)
print(res)
<-python+>
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте развернем структуру со словарем:
<+python+>
import tensorflow as tf
structure = {'a': 1, 'b': [2, 3], 'c': (4, 5)}
res = tf.nest.flatten(structure)
print(res)
<-python+>
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте развернем структуру с тензорами:
<+python+>
import tensorflow as tf
structure = {
'x': tf.constant([1, 2, 3, 4, 5]),
'y': [tf.constant([[1, 2, 3], [4, 5, 6]])]
}
res = tf.nest.flatten(structure)
print(res)
<-python+>
Результат выполнения кода:
[<tf.Tensor: shape=(5,), dtype=int32, numpy=array([1, 2, 3, 4, 5], dtype=int32)>, <tf.Tensor: shape=(2, 3), dtype=int32, numpy=
array([[1, 2, 3],
[4, 5, 6]], dtype=int32)>]
Смотрите также
-
функцию
nest.map_structure,
которая применяет функцию к каждому элементу структуры -
функцию
nest.pack_sequence_as,
которая упаковывает плоский список обратно в структуру -
функцию
nest.assert_same_structure,
которая проверяет идентичность структур -
функцию
nest.is_nested,
которая проверяет, является ли объект вложенной структурой