tf.nest.flatten
| Просмотреть исходный код на GitHub |
Возвращает плоский список из заданной вложенной структуры.
tf.nest.flatten(
structure, expand_composites=False
)
Если nest не является структурой, кортежем (или именованным кортежем), словарем или классом attrs, то возвращает список с одним элементом: [nest].
В случае экземпляров словарей последовательность состоит из значений, отсортированных по ключу для обеспечения детерминированного поведения. Это также верно для экземпляров OrderedDict: их порядок следования игнорируется, используется порядок сортировки ключей. Такая же соглашение используется в pack_sequence_as. Это правильно упаковывает словари и OrderedDict после их уплощения, а также позволяет уплощать OrderedDict и затем упаковывать его обратно с помощью соответствующего обычного словаря или наоборот. Словари с несортируемыми ключами не могут быть уплощены.
Пользователи не должны изменять никакие коллекции, используемые в nest, в то время как эта функция выполняется.
Примеры:
- Словарь Python (отсортирован по ключу):
dict = { "key3": "value3", "key1": "value1", "key2": "value2" }
tf.nest.flatten(dict)
['value1', 'value2', 'value3']
- Для вложенного кортежа Python:
tuple = ((1.0, 2.0), (3.0, 4.0, 5.0), (6.0))
tf.nest.flatten(tuple)
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
- Массив Numpy (не будет уплощен):
array = np.array([[1, 2], [3, 4]])
tf.nest.flatten(array)
[array([[1, 2],
[3, 4]])]
-
tf.Tensor(не будет уплощен):
tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
tf.nest.flatten(tensor)
[<tf.Tensor: shape=(3, 3), dtype=float32, numpy=
array([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]], dtype=float32)>]
| Аргументы | |
|---|---|
structure | произвольно вложенная структура. Обратите внимание, что массивы numpy считаются атомами и не уплощаются. |
expand_composites | Если True, то составные тензоры, такие как tf.sparse.SparseTensor и tf.RaggedTensor расширяются до своих составляющих тензоров. |
| Возвращаемые значения | |
|---|---|
| Список Python, уплощенная версия входных данных. |
| Исключения | |
|---|---|
TypeError | Вложенная структура содержит словарь с несортируемыми ключами. |
© 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/r2.4/api_docs/python/tf/nest/flatten