File size: 701 Bytes
e791b16 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # Buffer actor supporting Ray or standalone in-memory execution
from typing import Any, List
try:
import ray
ray_remote = ray.remote
except ImportError:
ray = None
def ray_remote(cls):
return cls
from ..buffer.replay_buffer import BoundedReplayBuffer, Experience
@ray_remote
class ReplayBufferActor:
def __init__(self, max_size: int = 10000):
self.buffer = BoundedReplayBuffer(max_size=max_size)
def push(self, exp: Experience) -> bool:
self.buffer.push(exp)
return True
def sample(self, batch_size: int) -> List[Experience]:
return self.buffer.sample(batch_size)
def size(self) -> int:
return self.buffer.size()
|