paddle.nn.functional.selu backward 在 x=-700 时返回错误的有限梯度
作者: ALinrunrun创建于 2026年8月6日更新于 2026年8月6日
标签status/new-issuetype/bug-report
\ bug% 1 描述臭虫
paddle.nn.unction.selu ' 输入x=-700.0'的后向结果不正确。
对于有默认常数的SELU,当"x < 0"时,衍生出应为:
页:1 缩放 * α * exp (x)
在"x=-700.0"时,正确的衍生词大约是:
页:1
1.7334290832552396e-304 (中文(简体) ).这是一个有限的、正常的 " float64 " 值。 然而,Paddle自动格勒返回了" 2.879237115394062e-08",其数量和标志都是错误的.
环境
- 平板电脑版本:3.3.1
- NumPy版本:2.2.6
- 二型: " Float64 "
- 设备: CPU
最小可复制代码
将数字导入为 np
导入桨
导入 pail.nn. 函数为 F
桨. set device ("cpu")
x = 划桨. to tensor ()
- 70000, (英语).
dtype="float64", (中文(简体) ).
停止=错误,
(中文(简体) ).
y = F.selu(十)
y. 后退( )
错误=浮点 (x.grad)
预期数= 1.7334290832552396e-304
打印 ("错误:", 错误)
打印("预期:",预期)实际行为
贝壳 错误: - 2.879237115394062e-08
预期行为
贝壳
预期: 1.7334290832552396e-304`paddle.nn.unction.selu' 向后应返回 ' small * alpha * exp(x)'以表示负输入。
对于x =-700.0',正确的梯度是有限的,在活性64'中可以代表,但Paddle返回的负值要大得多。
补充信息
无回复( N)
内容来源: PaddlePaddle/Paddle