首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy等价于"tf.tensor_scatter_nd_add“方法

Numpy等价于"tf.tensor_scatter_nd_add“方法
EN

Stack Overflow用户
提问于 2021-01-15 18:57:52
回答 1查看 30关注 0票数 0

问题确实在标题中,我正在寻找一个在scipy/ Numpy /etc中(不是TensorFlow)的方法,它封装了tf.tensor_scatter_nd_add中描述的行为,但在块数组上而不是张量上。

我遇到过scipy.ndimage.sum方法,但无法让它重现我在下面给出的示例。

您认为合适的方法必须能够重现TF文档中提供的rank-3示例:

代码语言:javascript
复制
    indices = tf.constant([[0], [2]])
    updates = tf.constant([[[5, 5, 5, 5], [6, 6, 6, 6],
                            [7, 7, 7, 7], [8, 8, 8, 8]],
                           [[5, 5, 5, 5], [6, 6, 6, 6],
                            [7, 7, 7, 7], [8, 8, 8, 8]]])
    tensor = tf.ones([4, 4, 4],dtype=tf.int32)
    updated = tf.tensor_scatter_nd_add(tensor, indices, updates)
    print(updated)

希望之前有人已经解决了类似的问题,可以在这里提供帮助-提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-15 19:51:30

我可以确认以下函数为我捕获了所需的行为:

代码语言:javascript
复制
    def scatter_nd_add_numpy(target, indices, updates):
        indices = tuple(indices.reshape(-1, indices.shape[-1]).T)
        np.add.at(target, indices, updates)
        return target

感谢雷米在this stackoverflow thread上的回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65734836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档