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


Python mxnet.ndarray.op.scatter_nd用法及代码示例


用法:

mxnet.ndarray.op.scatter_nd(data=None, indices=None, shape=_Null, out=None, name=None, **kwargs)

参数

  • data(NDArray) - 数据
  • indices(NDArray) - index
  • shape(Shape(tuple), required) - 输出的形状。
  • out(NDArray, optional) - 输出 NDArray 来保存结果。

返回

out- 此函数的输出。

返回类型

NDArray 或 NDArray 列表

根据索引将数据分散到一个新的张量中。

给定形状为 data(Y_0, …, Y_{K-1}, X_M, …, X_{N-1}) 和形状为 (M, Y_0, …, Y_{K-1}) 的索引,输出将具有形状 (X_0, X_1, …, X_{N-1}) ,其中 M <= N 。如果 M == N ,数据形状应该只是 (Y_0, …, Y_{K-1})

输出中的元素定义如下:

output[indices[0, y_0, ..., y_{K-1}],
       ...,
       indices[M-1, y_0, ..., y_{K-1}],
       x_M, ..., x_{N-1}] = data[y_0, ..., y_{K-1}, x_M, ..., x_{N-1}]

输出中的所有其他条目都是 0。

警告

如果索引有重复,结果将是不确定的,scatter_nd 的梯度将不正确!!

例子:

data = [2, 3, 0]
indices = [[1, 1, 0], [0, 1, 0]]
shape = (2, 2)
scatter_nd(data, indices, shape) = [[0, 0], [2, 3]]

data = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
indices = [[0, 1], [1, 1]]
shape = (2, 2, 2, 2)
scatter_nd(data, indices, shape) = [[[[0, 0],
                                      [0, 0]],

                                     [[1, 2],
                                      [3, 4]]],

                                    [[[0, 0],
                                      [0, 0]],

                                     [[5, 6],
                                      [7, 8]]]]

相关用法


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