# {py:mod}`evorl.replay_buffers` ```{py:module} evorl.replay_buffers ``` ```{autodoc2-docstring} evorl.replay_buffers :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Package Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`AbstractReplayBuffer ` - ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.AbstractReplayBuffer :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`LAPReplayBuffer ` - ```{autodoc2-docstring} evorl.replay_buffers.lap_replay_buffer.LAPReplayBuffer :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`PrioritizedReplayBuffer ` - ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`PrioritizedReplayBufferState ` - ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`ReplayBuffer ` - ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBuffer :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`ReplayBufferState ` - ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBufferState :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} AbstractReplayBuffer :canonical: evorl.replay_buffers.replay_buffer.AbstractReplayBuffer Bases: {py:obj}`evorl.types.PyTreeNode` ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.AbstractReplayBuffer :parser: autodoc2_docstrings_parser ``` ````{py:method} add(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState, xs: chex.ArrayTree) -> evorl.replay_buffers.replay_buffer.ReplayBufferState :canonical: evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.add :abstractmethod: ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.add :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} can_sample(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState) -> bool :canonical: evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.can_sample :abstractmethod: ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.can_sample :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(sample_spec: chex.ArrayTree) -> evorl.replay_buffers.replay_buffer.ReplayBufferState :canonical: evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.init :abstractmethod: ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.init :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} is_full(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState) -> bool :canonical: evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.is_full :abstractmethod: ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.is_full :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} sample(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState, key: chex.PRNGKey) -> chex.ArrayTree :canonical: evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.sample :abstractmethod: ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.AbstractReplayBuffer.sample :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} LAPReplayBuffer :canonical: evorl.replay_buffers.lap_replay_buffer.LAPReplayBuffer Bases: {py:obj}`evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer` ```{autodoc2-docstring} evorl.replay_buffers.lap_replay_buffer.LAPReplayBuffer :parser: autodoc2_docstrings_parser ``` ````{py:method} sample(buffer_state: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState, key: chex.PRNGKey, beta: float | chex.Array = 0.0) -> tuple[chex.ArrayTree, chex.Array, evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState] :canonical: evorl.replay_buffers.lap_replay_buffer.LAPReplayBuffer.sample ```{autodoc2-docstring} evorl.replay_buffers.lap_replay_buffer.LAPReplayBuffer.sample :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} PrioritizedReplayBuffer :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer Bases: {py:obj}`evorl.replay_buffers.replay_buffer.ReplayBuffer` ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer :parser: autodoc2_docstrings_parser ``` ````{py:method} add(buffer_state: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState, xs: chex.ArrayTree, mask: chex.Array | None = None) -> evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.add ```` ````{py:attribute} alpha :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.alpha :type: float :value: > 0.6 ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.alpha :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(spec: chex.ArrayTree) -> evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.init ```` ````{py:method} reset_max_priority(buffer_state: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState) -> evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.reset_max_priority ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.reset_max_priority :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} sample(buffer_state: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState, key: chex.PRNGKey, beta: float | chex.Array = 0.4) -> tuple[chex.ArrayTree, chex.Array, evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState] :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.sample ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.sample :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} update_priority(buffer_state: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState, priority: chex.Array) -> evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.update_priority ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBuffer.update_priority :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} PrioritizedReplayBufferState :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState Bases: {py:obj}`evorl.replay_buffers.replay_buffer.ReplayBufferState` ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState :parser: autodoc2_docstrings_parser ``` ````{py:attribute} max_priority :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState.max_priority :type: chex.Array :value: > 'ones(...)' ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState.max_priority :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} priority :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState.priority :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState.priority :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} sample_indices :canonical: evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState.sample_indices :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.replay_buffers.prioritized_replay_buffer.PrioritizedReplayBufferState.sample_indices :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ReplayBuffer :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer Bases: {py:obj}`evorl.replay_buffers.replay_buffer.AbstractReplayBuffer` ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBuffer :parser: autodoc2_docstrings_parser ``` ````{py:method} add(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState, xs: chex.ArrayTree, mask: chex.Array | None = None) -> evorl.replay_buffers.replay_buffer.ReplayBufferState :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.add ```` ````{py:method} can_sample(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState) -> bool :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.can_sample ```` ````{py:attribute} capacity :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.capacity :type: int :value: > None ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBuffer.capacity :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} init(spec: chex.ArrayTree) -> evorl.replay_buffers.replay_buffer.ReplayBufferState :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.init ```` ````{py:method} is_full(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState) -> bool :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.is_full ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBuffer.is_full :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} min_sample_timesteps :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.min_sample_timesteps :type: int :value: > 0 ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBuffer.min_sample_timesteps :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} sample(buffer_state: evorl.replay_buffers.replay_buffer.ReplayBufferState, key: chex.ArrayTree) -> chex.ArrayTree :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.sample ```` ````{py:attribute} sample_batch_size :canonical: evorl.replay_buffers.replay_buffer.ReplayBuffer.sample_batch_size :type: int :value: > None ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBuffer.sample_batch_size :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ReplayBufferState :canonical: evorl.replay_buffers.replay_buffer.ReplayBufferState Bases: {py:obj}`evorl.types.PyTreeData` ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBufferState :parser: autodoc2_docstrings_parser ``` ````{py:attribute} buffer_size :canonical: evorl.replay_buffers.replay_buffer.ReplayBufferState.buffer_size :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBufferState.buffer_size :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} current_index :canonical: evorl.replay_buffers.replay_buffer.ReplayBufferState.current_index :type: chex.Array :value: > 'zeros(...)' ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBufferState.current_index :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} data :canonical: evorl.replay_buffers.replay_buffer.ReplayBufferState.data :type: chex.ArrayTree :value: > None ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer.ReplayBufferState.data :parser: autodoc2_docstrings_parser ``` ```` `````