首页 > 解决方案 > 小幅度向量的数值稳定归一化

问题描述

问题的背景是我在 Jax(基本上是 NumPy)中有一个 resnet 模型,并且我采用了图像相对于其类别预测的梯度。这给了我一个梯度向量 ,g然后我想对其进行归一化。问题是,分量 , 的大小g[i]是这样的g[i]**2 == 0,这意味着仅除以np.linalg.norm(g)给出 的值0,因此给我nans。

到目前为止,我所做的只是检查范数是否为 0,然后乘以某个常数因子,如 ( g = np.where(np.linalg.norm(g) < 1e-20, g * 1e20, g)) 所示。

在想也许我应该除以最小的非零元素然后归一化。有没有人知道如何正确规范化这个向量?

标签: pythonnumpynumerical-stability

解决方案


推荐阅读