小能豆

Tensorflow finfo(数字限制)

py

如何在 tensorflow Python API 中访问类似numpy.finfo(或torch.finfo) 的内容?我想查找给定类型的最小增量或最大有限值 (例如tf.float32)。某些属性可直接访问;

tf.float32.max
>> -3.4028235e+38
tf.float32.min
>> -3.4028235e+38

但是epsiloninfinity或者类似的情况怎么样?

我希望有一个简单的 C++ 接口std::numeric_limits,但我似乎找不到它。


阅读 20

收藏
2025-01-07

共1个答案

小能豆

您可以随时通过 PyTorch 检查这一点。应该与 TF 中的相同。

import torch
print(torch.finfo(torch.float16).eps) #0.0009765625
print(torch.finfo(torch.float32).eps) #1.1920928955078125e-07
print(torch.finfo(torch.float64).eps) #2.220446049250313e-16
print(torch.finfo(torch.double).eps)  #2.220446049250313e-16 

否则这将是keras epsilon方式:

import tensorflow as tf
tf.keras.backend.epsilon() #1e-07

还有set_epsilon()你可以玩的。

2025-01-07