当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.sparse.concat用法及代码示例


沿指定维度连接 SparseTensor 列表。 (不推荐使用的参数)

用法

tf.sparse.concat(
    axis, sp_inputs, expand_nonconcat_dims=False, name=None
)

参数

  • axis 要连接的维度。必须在 [-rank, rank) 范围内,其中 rank 是每个输入 SparseTensor 中的维数。
  • sp_inputs 要连接的SparseTensor 列表。
  • name 返回张量的名称前缀(可选)。
  • expand_nonconcat_dim 是否允许在非连续维度中进行扩展。默认为假。
  • concat_dim 轴的旧(不推荐)名称。
  • expand_nonconcat_dims expand_nonconcat_dim 的别名

返回

  • 带有串联输出的SparseTensor

抛出

  • TypeError 如果 sp_inputs 不是 SparseTensor 的列表。

警告:不推荐使用某些参数:(concat_dim)。它们将在未来的版本中被删除。更新说明:concat_dim 已弃用,请改用轴

连接是关于每个稀疏输入的密集版本。假设每个输入是一个SparseTensor,其元素按递增的维数排序。

如果 expand_nonconcat_dim 为 False,则所有输入的形状都必须匹配,除了 concat 维度。如果 expand_nonconcat_dim 为 True,则允许输入的形状在所有输入之间变化。

indices , valuesshapes 列表必须具有相同的长度。

如果 expand_nonconcat_dim 为 False,则输出形状与输入形状相同,除了沿 concat 维度,它是沿该维度的输入大小的总和。

如果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          ]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.sparse.concat。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。