TensorFlow函数:tf.sparse_add

由 Carrie 创建, 最后一次修改 2018-02-23

tf.sparse_add 函数

sparse_add(
    a,
    b,
    thresh=0
)

定义在:tensorflow/python/ops/sparse_ops.py.

请参阅指南:稀疏张量>数学运算

添加两个张量,其中至少有一个是 SparseTensor.

如果传入的是一个 SparseTensor 和一个 Tensor,则返回一个 Tensor.如果两个参数都是 SparseTensors,则返回 SparseTensor.参数的顺序无关紧要.使用 vanilla tf.add() 添加两个密集的Tensors.

两个操作数的形状必须匹配:不支持广播.

任何输入 SparseTensor 的索引都假定按标准词典顺序排序.如果不是这种情况,在此步骤之前运行 SparseReorder 以还原索引排序.

如果两个参数都很稀疏,我们按如下所示执行“剪切”.默认情况下,如果在某个索引处两个值总和为零,则输出 SparseTensor 仍然会在其索引中包含该特定位置,并在相应的值槽中存储一个零.为了重写此项,调用者可以指定 thresh,指示如果总和具有严格小于 thresh 的大小,则不包括其相应的值和索引.特别是,thresh == 0.0(默认)意味着一切都保持不变,实际的阈值只发生在正值上.

例如,假设两个稀疏操作数的逻辑和为(致密):

[       2]
[.1     0]
[ 6   -.2]

然后:

* `thresh == 0` (the default): all 5 index/value pairs will be returned.
* `thresh == 0.11`: only .1 and 0 will vanish, and the remaining three
    index/value pairs will be returned.
* `thresh == 0.21`: .1, 0, and -.2 will vanish.

函数参数:

  • a:第一个操作数;可以是 SparseTensor 或者 Tensor.
  • b:第二个操作数;可以是 SparseTensor 或者 Tensor.至少有一个操作数必须是 SparseTensor.
  • thresh:一个 0-D Tensor,用于确定输出的值/索引(value/index)对是否占用空间的幅度阈值.如果它们是真实的,它的dtype应该与值相匹配;如果后者是:complex64/complex128,则相应地,dtype应该是:float32/float64.

返回值:

该函数返回一个 SparseTensor 或 Tensor,表示总和.

可能引发的异常:

  • TypeError:如果两个操作数 a 和 b 都是 Tensor,则改为使用 tf.add().
以上内容是否对您有帮助:
二维码
建议反馈
二维码