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