parent
46d21a838a
commit
9731705ee4
@ -0,0 +1,22 @@
|
|||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
|
class EMAValue(object):
|
||||||
|
def __init__(self, init_value: Optional[float] = None, decay_factor: float = 0.999) -> None:
|
||||||
|
super().__init__()
|
||||||
|
self._value = init_value
|
||||||
|
self._decay_factor = decay_factor
|
||||||
|
|
||||||
|
@property
|
||||||
|
def value(self) -> Optional[float]:
|
||||||
|
return self._value
|
||||||
|
|
||||||
|
def update(self, value: float) -> None:
|
||||||
|
if self._value is None:
|
||||||
|
self._value = value
|
||||||
|
else:
|
||||||
|
self._value = self._decay_factor * self._value + (1 - self._decay_factor) * value
|
||||||
|
|
||||||
|
def update_with_return(self, value: float) -> Optional[float]:
|
||||||
|
self.update(value)
|
||||||
|
return self._value
|
Loading…
Reference in new issue