首页 > 其他分享 >数值计算中的相对误差,绝对误差

数值计算中的相对误差,绝对误差

时间:2024-10-25 15:11:11浏览次数:1  
标签:code 绝对误差 numpy 数值 rtol 1e atol tolerance 相对误差

数值计算中的相对误差,绝对误差

相对误差:
Relative tolerance (RTOL) controls local error relative to the size of the solution— RTOL = 10-4 means that errors are controlled to 0.01%

绝对误差:
Absolute tolerances (ATOL) control error when a solution component may be small
— Ex: solution starting at a nonzero value but decaying to noise level, ATOL should be set to noise level

Operator Numerical Check

1. 基本公式

image

其中:

atol: absolute tolerance
rtol: relative tolerance
NaN and Inf行为:
NaNs are treated as equal if they are in the same place and if equal_nan=True. Infs are treated as equal if they are in the same place and of the same sign in both arrays.

2. 软件行为

NumPy
Numpy对应的接口有两个:

[numpy.allclose(a, b, rtol=1.e-5, atol=1.e-8, equal_nan=False)](https://github.com/numpy/numpy/blob/19989c21b6b7a45da80b21d3abde485542ae4eb1/numpy/core/numeric.py#L2189)

[testing.assert_allclose(actual, desired, rtol=1e-07, atol=0, equal_nan=True)](https://numpy.org/doc/stable/reference/generated/numpy.testing.assert_allclose.html)

PyTorch
PyTorch采用Numpy相同的default tolerance,API为:

torch.allclose(input, other, rtol=1e-05, atol=1e-08, equal_nan=False)。

每个op可使用default也可自设,具体每个op的tolerance可见source code; Caffe2算子的tolerance可见source code。

Examples

op 数据类型 absolute tolerance relative tolerance
MatMul(FWD) FP32 1e-4 1e-4
MatMul(FWD) FP16 150 * 1e-4 150 * 1e-4

from code

TensorFlow
TF使用如下test util判断:

assertAllCloseAccordingToType(a, b, rtol=1e-06, atol, float_rtol, float_atol, half_rtol, half_atol, bfloat16_rtol, bfloat16_atol, msg=None)

或它的简化版本ssertAllClose。
对不同的数据类型,default tolerance如下:

数据类型 absolute tolerance relative tolerance
FP64 2.22e-15 2.22e-15
FP32 1e-6 1e-6
FP16 1e-3 1e-3
BF16 1e-2 1e-2

TF default tolerance的选择标准描述如下:

The default atol and rtol is 10 * eps, where eps is the smallest representable positive number such that 1 + eps != 1. This is about 1.2e-6 in 32bit, 2.22e-15 in 64bit, and 0.00977 in 16bit. See numpy.finfo.

具体每个op的tolerance可见相应op的test code或相应kernel的test code。

Examples

op 数据类型 absolute tolerance relative tolerance
MatMul(FWD) FP32 3e-5 3e-5
MatMul(FWD) FP16 0.2 0.2

code

https://www.cnblogs.com/Matrix_Yao/p/15830144.html

标签:code,绝对误差,numpy,数值,rtol,1e,atol,tolerance,相对误差
From: https://www.cnblogs.com/michaelcjl/p/18502592

相关文章

  • PFC离散元数值模拟仿真技术与应用
    随着计算能力的提高和算法的优化,离散元仿真技术得到了快速发展,并在学术界产生了大量研究成果。在PFC离散元计算中无需给定材料的宏观本构关系和对应的参数,这些传统的参数和力学特性在程序中可以自动得到。据调查,运用PFC离散元仿真技术工具近几年发表的论文主要集中在以下几个方......
  • Python数值计算(30)——矩形及复合矩形积分公式
    前面介绍了数值积分的基本背景知识,接下来就介绍各种常见的数值积分算法,本次主要介绍矩形和梯形积分公式。1.矩形积分公式对于一个连续函数,根据中值定理有:现在的关键是如何确定使误差尽可能比较小,一个比较简单的想法是使用该区间中间值,亦即Python中实现代码如下:defRectI......
  • 网站权重数值越大,排名越高?揭秘网站权重与搜索排名的关系
    在搜索引擎优化(SEO)领域,网站权重是一个备受关注的概念。很多站长和SEO从业者认为,网站权重数值越大,网站在搜索引擎中的排名就会越高。那么,这种说法是否准确呢?本文将深入剖析网站权重与搜索排名之间的关系。一、网站权重的含义网站权重是搜索引擎用来评估网站质量、权威性和相关......
  • 三周精通FastAPI:6 路径参数和数值校验
    路径参数和数值校验¶与使用 Query 为查询参数声明更多的校验和元数据的方式相同,你也可以使用 Path 为路径参数声明相同类型的校验和元数据。导入路径Path¶首先,从 fastapi 导入 Path:fromtypingimportAnnotatedfromfastapiimportFastAPI,Path,Querya......
  • PbootCMS后台登录验证码有数值,但是看不清是怎么回事?
    遇到PbootCMS后台登录验证码看不清的问题,可以尝试以下几个解决方法:调整浏览器设置:尝试清除浏览器缓存和Cookies,有时候旧的缓存数据会影响页面的显示。检查浏览器的缩放比例是否合适,不合适的缩放比例可能会导致验证码图片显示不清晰。更换浏览器:有时候特定浏览器可能对......
  • JavaScript 数据类型转换全解析:转换为数值、字符串与布尔型
    目录非VIP用户可前往公众号“前端基地”进行免费阅读转换为数值型转换为数值型Number()函数parseInt()函数parseFloat()函数转换为字符串型转换方法toString()函数String()函数转换为布尔型转换方法Boolean()函数非VIP用户可前往公众号“前端基地”进行免......
  • 算法iITCGP的数值试验结果
    试验一:试验二: ......
  • 【轴承动力学】ODE45轴承故障动力学(四类)数值计算(含加速度 滚道接触力 相图)【含Matlab
    ......
  • vue中使用decimal.js对前端数值类型进行高精度计算
    需求背景:由于一些场景我们需要在前端JavaScript进行数值计算,且对精度要求比较严谨,而前端数值是浮点类型,直接使用计算可能会产生一系列的精度问题,常见的浮点运算问题,比如精度损失等;所以例如涉及到一些金额计算等,需要进行高精度处理。解决方案:(1)可以把数值计算部分逻辑交给后端接口......
  • PbootCMS后台登录验证码有数值,但是看不清是怎么回事?
    当PbootCMS后台登录验证码在某些PHP版本下显示不清楚时,通常是因为PHP版本不兼容导致的。验证码背景图黑色和文字颜色深色相冲也会导致这个问题。以下是详细的解决方法:原因分析验证码背景图黑色和文字颜色深色相冲,导致验证码难以看清。这通常是由于PHP版本不兼容造成的。解决方......