【问题标题】:Tensorflow finfo (numeric limits)Tensorflow finfo(数值限制)
【发布时间】:2019-01-04 22:43:20
【问题描述】:
如何在 tensorflow Python API 中访问 numpy.finfo(或 torch.finfo)之类的内容?我想查找给定类型的最小增量或最大有限值(例如tf.float32)。有些属性可以直接访问;
tf.float32.max
>> -3.4028235e+38
tf.float32.min
>> -3.4028235e+38
但是epsilon、infinity 或类似的呢?
我希望有一个与 c++ std::numeric_limits 的直接接口,但我似乎找不到它。
【问题讨论】:
标签:
python
tensorflow
pytorch
【解决方案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()可以玩。