【译】Effective TensorFlow Chapter12——TensorFlow中的数值稳定性
本文翻译自: 《Numerical stability in TensorFlow》, 如有侵权请联系删除, 仅限于学术交流, 请勿商用。 如有谬误, 请联系指出。 当使用任何数值计算库(如 NumPy 或 TensorFlow)时, 值得注意的是, 编写出正确的数学计算代码对于计算出正确结果并不是必须的。 你同样需要确保整个计算过程是稳定的。 让我们从一个例子入手。 小学的时候我们就知道, 对于任意一个非 0 的数 x, 都有 x*y/y=x 。 但是让我们在实践中看看是否如此: import numpy as np x = np.float32(1) y = np.float32(1e-50) # y would be stored as zero z = x * y / y print(z) # prints nan 错误的原因是: y 是 float32 类型的数字, 所能表示的数值太小。 当 y 太大时会出现类似的问题: y = np.float32(1e39) # y would be stored as inf z = x * y / y print(z) # prints 0 float32 类型可以表示的最小正值是 1....