Paddle 1.5.0.post87-gpu scatter 函数 overwrite=False,没有累加 input 的值

1rhkuytd  于 2021-11-29  发布在  Java
关注(0)|答案(2)|浏览(233)

input:

[[1. 2. 3.]
[4. 5. 6.]
[7. 8. 9.]]

index:

[0 0 0]

updates:

[[11. 12. 13.]
[14. 15. 16.]
[17. 18. 19.]]

用法

paddle.fluid.layers.scatter(input, index, updates, overwrite=False)

output:

[[42. 45. 48.]
[ 4. 5. 6.]
[ 7. 8. 9.]]

问题 1

output[1] 和 output[2] 都保留了 input[1] 和 input[2] 的值,但是 output[0] 却是 updates[0] + updates[1] + updates[2],没有加 input[0]。

问题2

input 和 updates 的维度必须完全一致?我尝试用 input: [3, 3] 和 updates: [4, 3] 进行计算,但是报错:
Enforce failed. Expected ctx->GetInputDim("Updates")[0] == ctx->GetInputDim("Ids")[0], but received ctx->GetInputDim("Updates")[0]:4 != ctx->GetInputDim("Ids")[0]:3.
Updates and Ids should have same batch-size. at [/paddle/paddle/fluid/operators/scatter_op.cc:44]
很多时候需要将两个长度不一致的矩阵 scatter 到一起。接口又要求 index rank==1,进而不能将 input 和 updates 扩一维进行操作...

b1uwtaje

b1uwtaje1#

嗯嗯 是有这个问题的,我这边会尽快修复。

50pmv0ei

50pmv0ei2#

修复是两个问题都修复还是修复某一个问题?

相关问题