tf.sparse.concat
| Просмотреть исходный код на GitHub |
Конкатенирует список SparseTensor по указанному измерению. (устаревшие аргументы)
tf.sparse.concat(
axis, sp_inputs, expand_nonconcat_dims=False, name=None
)
Конкатенация выполняется относительно плотных версий каждого разреженного входного значения. Предполагается, что каждый вход представляет собой 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 |
| Возвращает | |
|---|---|
A 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.4/api_docs/python/tf/sparse/concat