TensorFlow 默认精度模式?

TensorFlow default precision mode?

我正在使用 TensorFlow 1.14 并测试 TensorRT;正如我在文档中看到的,TensorRT 支持 3 种精度模式:“FP32”、“FP16”和“INT8”。所以我想知道TensorFlow默认的精度模式是什么;我想它是 FP32,但我对此不是很确定?

TensorRT默认精度为Float32。参见 here

Tensorflow的默认精度也是Float32。参见 here
您可以通过以下方式确认:
代码:

import tensorflow as tf
tf.keras.backend.floatx()

输出:

'float32'

如果您想更改此行为或使用其他精度: 您可以使用 set_floatx 方法。

tf.keras.backend.set_floatx('float64')

注意:不建议将其设置为 float16 进行训练,因为这可能会导致数值稳定性问题。

tensorflow 中 weights 的默认精度是 'float32',可以在此处的权重初始化函数文档中看到: https://github.com/tensorflow/tensorflow/blob/6bfbcf31dce9a59acfcad51d905894b082989012/tensorflow/python/ops/init_ops.py#L527

但是,在模型中使用的不同层所支持的情况下,输入可以是多精度的。

现在,大多数情况下您会希望在训练后减小模型的大小(由模型权重形成)以便能够部署。在此期间,您可以将模型权重的精度降低到 FP16。