jax.lax.scatter_add

内容

jax.lax.scatter_add#

jax.lax.scatter_add(operand, scatter_indices, updates, dimension_numbers, *, indices_are_sorted=False, unique_indices=False, mode=None)[source]#

散射加法运算符。

包装 XLA 的 Scatter 运算符,其中加法用于组合来自 operand 的更新和值。

scatter 的语义很复杂,其 API 可能会在将来发生变化。对于大多数用例,您应该优先考虑 JAX 数组上的 jax.numpy.ndarray.at 属性,该属性使用熟悉的 NumPy 索引语法。

参数:
  • operand (ArrayLike) – 应应用散射的数组

  • scatter_indices (ArrayLike) – 一个数组,给出 operand 中每个更新在 updates 中应应用到的索引。

  • updates (ArrayLike) – 应散射到 operand 上的更新。

  • dimension_numbers (ScatterDimensionNumbers) – 一个 lax.ScatterDimensionNumbers 对象,描述 operandscatter_indicesupdates 和输出的维度如何关联。

  • indices_are_sorted (bool) – scatter_indices 是否已知排序。如果为真,则可能会提高某些后端的性能。

  • unique_indices (bool) – 指示 operand 中要更新的元素是否保证互不重叠。如果为 True,则可能会提高某些后端的性能。JAX 不会检查此承诺:如果在 unique_indicesTrue 时更新的元素重叠,则行为未定义。

  • mode (str | GatherScatterMode | None | None) – 如何处理超出范围的索引:当设置为 'clip' 时,索引会被裁剪以确保切片在范围内,而当设置为 'fill' 或 'drop' 时,超出范围的更新会被丢弃。当设置为 'promise_in_bounds' 时,超出范围索引的行为由实现定义。

返回:

包含 operand 和散列更新之和的数组。

返回类型:

数组