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


Python tf.raw_ops.SparseConcat用法及代码示例


沿指定维度连接 SparseTensor 列表。

用法

tf.raw_ops.SparseConcat(
    indices, values, shapes, concat_dim, name=None
)

参数

  • indices 至少 2 个类型为 int64Tensor 对象的列表。二维。每个输入的索引 SparseTensor
  • values 与具有相同类型的Tensor 对象的indices 长度相同的列表。一维。每个 SparseTensor 的非空值。
  • shapes 与类型为 int64Tensor 对象的 indices 长度相同的列表。一维。每个 SparseTensor 的形状。
  • concat_dim 一个 int 。要连接的维度。必须在 [-rank, rank) 范围内,其中 rank 是每个输入 SparseTensor 中的维数。
  • name 操作的名称(可选)。

返回

  • Tensor 对象的元组(output_indices、output_values、output_shape)。
  • output_indices Tensor 类型为 int64
  • output_values 一个Tensor。具有与 values 相同的类型。
  • output_shape Tensor 类型为 int64

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

除连接维度外,所有输入的形状都必须匹配。 indices , valuesshapes 列表必须具有相同的长度。

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

输出元素将被用来保持随着维度数增加的排序顺序。

此操作在 O(M log M) 时间运行,其中 M 是所有输入中非空值的总数。这是由于需要内部排序以便在任意维度上有效连接。

例如,如果 concat_dim = 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          ]

相关用法


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