Spec-Zone.ru › TensorFlow 2.3

tf.sparse.concat

Просмотреть исходный код на GitHub

Конкатенирует список SparseTensor по указанному измерению. (аргументы устарели)

tf.sparse.concat(
    axis, sp_inputs, expand_nonconcat_dims=False, name=None
)
Предупреждение: НЕКОТОРЫЕ АРГУМЕНТЫ УСТАРЕЛИ: (concat_dim). Они будут удалены в будущей версии. Инструкции по обновлению: concat_dim устарел, используйте axis вместо него

Конкатенация выполняется относительно плотных версий каждого разреженного входного значения. Предполагается, что каждый вход представляет собой SparseTensor, элементы которого упорядочены по возрастанию номера измерения.

Если expand_nonconcat_dim равно False, все формы входов должны совпадать, за исключением измерения конкатенации. Если expand_nonconcat_dim равно True, формы входов могут различаться.

Список indices, values, и shapes должны иметь одинаковую длину.

Если expand_nonconcat_dim равно False, форма вывода идентична формам входов, за исключением измерения конкатенации, где она является суммой размеров входов по этому измерению.

Если expand_nonconcat_dim равно True, форма вывода по измерениям, отличным от измерения конкатенации, будет расширена до максимальной среди всех входов, а по измерению конкатенации она будет являться суммой размеров входов по этому измерению.

Элементы вывода будут отсортированы заново, чтобы сохранить порядок сортировки по возрастанию номера измерения.

Эта операция выполняется за время O(M log M), где M — общее количество ненулевых значений во всех входах. Это связано с необходимостью внутренней сортировки для эффективной конкатенации по произвольному измерению.

Например, если axis = 1 и входные данные:

sp_inputs[0]: shape = [2, 3]
[0, 2]: "a"
[1, 0]: "b"
[1, 1]: "c"

sp_inputs[1]: shape = [2, 4]
[0, 1]: "d"
[0, 2]: "e"

то выход будет:

shape = [2, 7]
[0, 2]: "a"
[0, 4]: "d"
[0, 5]: "e"
[1, 0]: "b"
[1, 1]: "c"

Графически это эквивалентно:

[    a] concat [  d e  ] = [    a   d e  ]
[b c  ]        [       ]   [b c          ]

Еще один пример, если 'axis = 1' и входные данные:

sp_inputs[0]: shape = [3, 3]
[0, 2]: "a"
[1, 0]: "b"
[2, 1]: "c"

sp_inputs[1]: shape = [2, 4]
[0, 1]: "d"
[0, 2]: "e"

если expand_nonconcat_dim = False, это приведет к ошибке. Но если expand_nonconcat_dim = True, это приведет к:

shape = [3, 7]
[0, 2]: "a"
[0, 4]: "d"
[0, 5]: "e"
[1, 0]: "b"
[2, 1]: "c"

Графически это эквивалентно:

[    a] concat [  d e  ] = [    a   d e  ]
[b    ]        [       ]   [b            ]
[  c  ]                    [  c          ]
Аргументы
axis Измерение для конкатенации. Должно быть в диапазоне [-ранг, ранг), где ранг — количество измерений в каждом входном SparseTensor.
sp_inputs Список SparseTensor для конкатенации.
name Префикс имени для возвращаемых тензоров (необязательно).
expand_nonconcat_dim Разрешить ли расширение по измерениям, отличным от измерения конкатенации. По умолчанию False.
concat_dim Старое (устаревшее) имя для axis.
expand_nonconcat_dims псевдоним для expand_nonconcat_dim
Возвращаемые значения
SparseTensor с конкатенированным выходом.
Возможные исключения
TypeError Если sp_inputs не является списком SparseTensor.

© 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.3/api_docs/python/tf/sparse/concat

Spec-Zone.ru

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