- 主题:最近用一个数值计算的库,Debug版和Release版本计算出的结果差
对,第一次接触这块,有什么需要注意的地方,能指点一下吗
【 在 ziqin 的大作中提到: 】
: 听起来只是机械的套用了矩阵的那些理论,没有考虑实际数值计算问题
:
: 【 在 iamrzd 的大作中提到: 】
: ...................
--来自微微水木3.5.14
--
FROM 223.70.159.*
对于一些不那么稳定的数值算法,些许扰动可能导致结果差异很大。
【 在 dormouseBHU 的大作中提到: 】
只要精度满足要求,rel和debug的结果不一样也没什么问题吧。。。
本来计算机算的就是个近似解,没必要要求必须完全相同
【 在 iamrzd 的大作中提到: 】
: 这么庞大的库,学会怎么用已费劲了,还要进去debug,想想都头大
:
--
FROM 123.118.110.59
你需要找一个数值稳定的算法
【 在 iamrzd 的大作中提到: 】
对,第一次接触这块,有什么需要注意的地方,能指点一下吗
【 在 ziqin 的大作中提到: 】
: 听起来只是机械的套用了矩阵的那些理论,没有考虑实际数值计算问题
:
: 【 在 iamrzd 的大作中提到: 】
: ...................
--来自微微水木3.5.14
--
FROM 123.118.110.59
就算个特征值特征向量有这么大的问题有点儿不敢相信呢。
你的输入好不好啊
【 在 iamrzd 的大作中提到: 】
: 两个版本计算出来的值有明显差别
--
FROM 167.220.233.*
如果是线性的话(我猜大概率是线性,因为Eigen好像就是一个处理矩阵相关的),那么很可能是自变量共线性了;如果是非线性那就更麻烦了。
【 在 iamrzd 的大作中提到: 】
: 对,第一次接触这块,有什么需要注意的地方,能指点一下吗
--
FROM 223.102.40.*
可以逐步打印出来对比下,每步的梯度方向,步长,Jacobi矩阵这些,一般是前一两步就开始错位了。。重点可以看看你计算Jacobi那块稳不稳
【 在 iamrzd 的大作中提到: 】
: 最开始怀疑是“Floating Point Model”的问题,但是发现Debug和Release版本都是"Precise (/fp:precise)"。
: 后来尝试把Release的优化关掉,结果就一致了,但是Release版本关掉优化并不是一个解决方案。
:
: 库是Eigen,一
: ..................
发自「今日水木 on 22041216C」
--
FROM 101.90.10.*
说起这些算法细节,忽然来了兴趣
不知道楼主在做什么问题
算法的数值稳定性有没有结论?
另外,不知道是不是特征值问题?
【 在 meizhi 的大作中提到: 】
: 可以逐步打印出来对比下,每步的梯度方向,步长,Jacobi矩阵这些,一般是前一两步就开始错位了。。重点可以看看你计算Jacobi那块稳不稳
: 发自「今日水木 on 22041216C」
--
修改:easior FROM 223.166.201.*
FROM 223.166.201.*
我觉得吧debug版本是正确的,release出错,那还是检查一下自己代码,看看哪些该初始化的变量没有初始化,把所以warning都修掉再跑一下看吧。
【 在 iamrzd 的大作中提到: 】
:
: 最开始怀疑是“Floating Point Model”的问题,但是发现Debug和Release版本都是"Precise (/fp:precise)"。
: 后来尝试把Release的优化关掉,结果就一致了,但是Release版本关掉优化并不是一个解决方案。
:
: 库是Eigen,一直把它当作黑盒子用,实现也比较复杂,没精力深入进去debug
#发自zSMTH-v-@钛星
--
FROM 203.208.61.*
输入数据要先标准化,统一到相近数量级,不要用矩阵那套来做拟合了,多找几个不同的数值优化算法直接优化残差
采用相对误差,不要用绝对误差做停止条件
多优化一会,跑个几百万个iteration再停,大部分的稳定的优化算法收敛速度都不行
【 在 iamrzd 的大作中提到: 】
: 对,第一次接触这块,有什么需要注意的地方,能指点一下吗
--
FROM 183.128.140.*
print一下左边矩阵的condition number,看看是不是巨大
eigen用float精度够了
【 在 iamrzd 的大作中提到: 】
: 结果差别很大。是L-M拟合算法,可能就是因为局部的微小差别引起的最终结果差别明显
--
FROM 32.220.156.*