我正在尝试在 ArrayFire 中实现以下目标:
输入:
Indices: [ 0, 0, 1, 1, 1, 2, 2]
Values : [1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 5.0]
输出:
Result: [1.0 + 2.0, 3.0 + 1.0 + 2.0, 3.0 + 5.0] = [3.0, 6.0, 8.0]
所以输出中的元素i
是对应索引为 的所有输入值的总和i
。
TensorFlow 有一个 scatter_add 操作可用于执行此操作,但我在 ArrayFire 文档中找不到任何似乎符合要求的内容。ArrayFire scanByKey 函数达到了我需要的一半,并给出了累积扫描输出:
[1.0, 3.0, 3.0, 4.0, 6.0, 3.0, 8.0]
但是我仍然必须只提取每个索引的最大值(位置 1、4 和 6),以便为我提供下一步所需的数组,但我再次找不到执行此操作的函数。
如何使用 ArrayFire 实现这一目标?