Skip to main content

Simple Replay Buffer for RL

Project description

memmap-replay-buffer

An easy-to-use numpy memmap replay buffer for RL and other sequence-based learning tasks.

Install

$ pip install memmap-replay-buffer

Usage

import torch
from memmap_replay_buffer import ReplayBuffer

# initialize buffer

buffer = ReplayBuffer(
    './replay_data',
    max_episodes = 1000,
    max_timesteps = 500,
    fields = dict(
        state = ('float', (8,), 0.5), # type, shape, and optional default value
        action = 'int',               # default shape is ()
        reward = 'float'
    ),
    meta_fields = dict(
        task_id = 'int'
    ),
    circular = True,
    overwrite = True
)

# store an episode

for _ in range(4):
    with buffer.one_episode(task_id = 1):
        for _ in range(100):
            buffer.store(
                state = torch.randn(8).numpy(),
                action = torch.randint(0, 4, ()),
                reward = 1.0
            )

# rehydrate from disk

buffer_rehydrated = ReplayBuffer.from_config('./replay_data')
assert buffer_rehydrated.num_episodes == 4

# setup dataloader

dataloader = buffer.dataloader(batch_size = 2)

for batch in dataloader:
    state = batch['state']    # (2, 100, 8)
    action = batch['action']  # (2, 100)
    reward = batch['reward']  # (2, 100)
    lens = batch['_lens']     # (2,)

    assert state.shape  == (2, 100, 8)
    assert action.shape == (2, 100)
    assert reward.shape == (2, 100)
    assert lens.shape   == (2,)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memmap_replay_buffer-0.0.5.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memmap_replay_buffer-0.0.5-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file memmap_replay_buffer-0.0.5.tar.gz.

File metadata

  • Download URL: memmap_replay_buffer-0.0.5.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for memmap_replay_buffer-0.0.5.tar.gz
Algorithm Hash digest
SHA256 8e087dae7f4ca39e500b35cc18cb667fd352d89cb34b5a9efff2aea072737b5c
MD5 d70d9af6c081c48959ad02b20015ee63
BLAKE2b-256 ffcf5d7afcbbe41f3b7ab35b7de9a2d9e509a2d5e1e60d2a514fa02197f6f98b

See more details on using hashes here.

File details

Details for the file memmap_replay_buffer-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for memmap_replay_buffer-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 74a91408df3fdd2c7895766de60bde4aaf0ac3ae6c8436388861577dd46b1d3e
MD5 aac10478833392ce48f81c0713856691
BLAKE2b-256 886fba01447aeecd51b8138621206534b5850a5b8c9b72733f2ff16b6f7fed2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page