tf.sparse.concat
| Просмотреть исходный код на GitHub |
Конкатенирует список SparseTensor вдоль указанного измерения. (устаревшие аргументы)
tf.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/r1.15/api_docs/python/tf/sparse/concat