Open bridgekat opened 11 months ago
paddle.linalg.triangular_solve 函数反向传播时给出的梯度有误
paddle.linalg.triangular_solve
# paddlepaddle <= 2.5.1 import paddle a = paddle.to_tensor([[-1.]], dtype=paddle.float32) a.stop_gradient = False b = paddle.to_tensor([[-1.]], dtype=paddle.float32) b.stop_gradient = False c = paddle.linalg.triangular_solve(a, b, upper=False, transpose=False, unitriangular=False) paddle.grad(outputs=[c], inputs=[a])
在Windows+CPU平台下多次运行这段代码,无报错,但输出的结果不确定(可能出现 0、1 或 -1 等情况)。正确值应为 1。
0
1
-1
@bridgekat 你好,正确结果是 -1 ,我这边用linux cpu / gpu计算结果也是不对的,所以应该是kernel计算的问题,与设备关系不大,我后面会修复这个kernel的bug。
bug描述 Describe the Bug
paddle.linalg.triangular_solve
函数反向传播时给出的梯度有误在Windows+CPU平台下多次运行这段代码,无报错,但输出的结果不确定(可能出现
0
、1
或-1
等情况)。正确值应为1
。其他补充信息 Additional Supplementary Information