深度学习c++落地遇到的坑:根号0-0的问题,在项目中,计算两向量外积模长时候,导致开根号结果-nan和多次float运算导致的坑

根号0-0的问题,在项目中,计算两向量外积模长时候,有一个代码写错,导致模长开根号结果-nan

取模的时候,输入a和b两个向量一模一样,但是,嵌入式设备或者arm设备float减法里面结果时 -9*10^-9,实际就是0,然后开根号导致出现-nan。

还有简单的PC的float 在其他设备的float也会出现nan,需要考虑时跨平台兼容

float 使用的是科学计数法,当数据精度低时,边缘设备多次float 乘积可能导致越界的,

这时候就需要使用double,详细见“一个浮点数跨平台产生的问题”:https://www.cnblogs.com/alantu2018/p/8503415.html

原文地址:https://www.cnblogs.com/YouXiangLiThon/p/14543431.html