移动平均方案(指数加权,多项式衰减)。

average的Python项目详细描述


移动平均方案(指数加权,多项式衰减)。只维护运行平均值;不存储值的历史记录。

用法(ewma;指数加权移动平均值)

fromaverageimportEWMA# Create a scalar running average.# beta=0.5 is the smoothing factor.avg=EWMA(beta=0.5)avg.update(1)avg.update(2)print(avg.get())# Prints 1.6666666666666667.

平均数被加权到最近的值。也就是说,它的值是1 * 1/3 + 2 * 2/3beta的默认值是0.9,这对于许多用途都是合理的。较高的平滑值会增加平均值中最近值的权重。

还可以通过提供shape和dtype(默认为numpy.float64)来创建numpy数组形状的运行平均值。例如:

avg=EWMA((4,4),np.float64)# or, equivalently:avg=EWMA.like(np.eye(4))avg.update(np.eye(4))print(avg.get())# Prints a 4x4 identity matrix.

例如,您可以使用EWMA来保持hxwx3视频帧的运行平均值,前提是这些帧是numpy数组格式或可以转换为它。

用法(pdma;多项式衰减移动平均值)

当多项式衰减参数eta设置为默认值0时,PDMA充当简单平均值(平均值与所有以前的值相等)。不保留价值观的历史。

fromaverageimportPDMAavg=PDMA()avg.update(1)avg.update(2)avg.update(3)print(avg.get())# Prints 2.0.

较高的eta值对应于eta度的多项式衰减窗口,该窗口向后延伸到所有以前的值上。设置的eta越高,对最新值的权重就越大。

avg=PDMA(eta=1)foriinrange(1,5):avg.update(i)print(avg.get())# Prints 3.0.

在我们的示例中,将eta设置为0将打印简单平均值2.5。eta可以设置为任意高的值,但是0、1和3可能是许多用途的合理值。与EWMA类似,PDMA运行平均值的形状可以类似于numpy数组,并具有numpy数据类型(未显示)。

参考文献

kingma和ba在“Adam: A Method for Stochastic Optimization”中给出了带初始偏差修正的指数加权平均的公式。

shamir和zhang在“Stochastic Gradient Descent for Non-smooth Optimization: Convergence Results and Optimal Averaging Schemes”的第4节中给出了多项式衰减平均的公式。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
内存Java正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?