# {py:mod}`evorl.replay_buffers.replay_buffer` ```{py:module} evorl.replay_buffers.replay_buffer ``` ```{autodoc2-docstring} evorl.replay_buffers.replay_buffer :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module 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}`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} 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 ``` ```` `````