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