如何解决TensorFlow默认精度模式?
我正在使用TensorFlow 1.14并测试TensorRT;正如我在文档中看到的那样,TensorRT支持3种精度模式:“ FP32”,“ FP16”和“ INT8”。所以我想知道TensorFlow的默认精度模式是什么;我想它是FP32,但是我对此不太确定吗?
解决方法
张量流中 weights 的默认精度为'float32',如权重初始化函数文档所示: https://github.com/tensorflow/tensorflow/blob/6bfbcf31dce9a59acfcad51d905894b082989012/tensorflow/python/ops/init_ops.py#L527
但是,模型中使用的不同层所支持的输入可能具有多种精度。
现在,大多数情况下,您都希望在训练后能够减小模型的大小(由模型权重形成)。在此期间,您可以将模型重量的精度降低到FP16。
,TensorRT的默认精度为 Float32 。参见here
Tensorflow的默认精度也是 Float32 。参见here
您可以通过以下方式进行确认:
代码:
import tensorflow as tf
tf.keras.backend.floatx()
输出:
'float32'
如果您想更改此行为或使用其他精度: 您可以使用 set_floatx 方法。
tf.keras.backend.set_floatx('float64')
注意:建议不要将其设置为float16进行训练,因为这可能会导致数值稳定性问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。