tf.compat.v1.sparse_concat
Конкатенация списка SparseTensor по указанному измерению. (устаревшие аргументы)
tf.compat.v1.sparse_concat(
axis, sp_inputs, name=None, expand_nonconcat_dim=False, concat_dim=None,
expand_nonconcat_dims=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 |
| Возвращаемое значение | |
|---|---|
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/compat/v1/sparse_concat