def smooth(scalars: List[float], weight: float) -> List[float]: # Weight between 0 and 1
last = scalars[0] # First value in the plot (first timestep)
smoothed = list()
for point in scalars:
smoothed_val = last * weight + (1 - weight) * point # Calculate smoothed value
smoothed.append(smoothed_val) # Save it
last = smoothed_val # Anchor the last smoothed value
return smoothed
3条答案
按热度按时间k4emjkb11#
下面是执行指数平滑的实际源代码,注解中解释了一些额外的去偏,以补偿零初始值的选择:
图片来源:www.example.comhttps://github.com/tensorflow/tensorboard/blob/34877f15153e1a2087316b9952c931807a122aa7/tensorboard/components/vz_line_chart2/line-chart.ts#L714
06odsfpq2#
用于TensorBoard的EMA平滑实现可以在这里找到。
Python中的等价物实际上是:
nwnhqdif3#
它被称为指数移动平均线,下面是一个代码解释它是如何创建的。
假设所有真实的标量值都在一个名为
scalars
的列表中,平滑应用如下: