在深度学习中使用Fp16会对最终结果产生不利影响吗?

问题描述 投票:0回答:3

我看到tensorflow在训练和测试中提供了

fp16
的使用,使用它是否安全或者会对最终结果产生不利影响?

tensorflow deep-learning
3个回答
2
投票

根据维基百科数据,nvidia卡上的半精度浮点性能甚至比使用双精度浮点性能还要差,我很想知道性能报告来证实这个想法(https://github.com/tensorflow/tensorflow/issues/1300 ,请参阅页面底部,报告了 10% 的性能)。 因此我们可以得出结论,使用fp16主要是解决视频内存问题(或者模型规模),训练可以正常进行, 使用较低的精度是可以的,还研究了二进制连接。无论如何,适合都会被存档 相比之下,AMD 卡可以提供惊人的 fp16 性能,但软件支持很少。例如theano 和 openCL 上的 libgpuarray 背景。不过...人们使用 fp32 来计算


1
投票

它会影响训练时的输出,因为 float32 提供了额外的数学精度,但训练后,如果您的硬件本身支持 float16,您可以将网络中的操作“量化”为 float16,以获得更快的性能。如果硬件不支持此类操作,您的性能可能会下降。


0
投票

它可能会有很大差异。您的模型可能依赖于高精度来提供准确的预测,在这种情况下,较低精度的数据类型可能会显着影响准确性。但是,您的模型可能不太关心精度级别,并且较低精度的数据类型可以正常工作并产生相同的结果。我建议按顺序尝试 bf16、fp16、fp8、int8。

© www.soinside.com 2019 - 2024. All rights reserved.