#802·autograd

当无效情况为 NaN 时, where() 的梯度有时会错误地为 NaN

作者: jkunimune创建于 2026年8月30日更新于 2026年8月30日

使用 `where()` 定义的函数在应当定义时往往会产生 NaN 的梯度。 似乎当未被选择的情况为 NaN 时就会出现这种情况。 例如,考虑以下简单的分段函数。 尽管第二个情况仅在 x 小于零时定义,但整个函数应在除 x=0 以外的所有地方都定义和可微分。 但实际结果是,当 x>0 时,函数的值为 NaN。