findmyway / Trajectories.jl

A generalized data storage for reinforcement learning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Trajectories

Build Status Coverage PkgEval

Design

      ┌────────────────────────────┐
      │(state=..., action=..., ...)│
      └──────────────┬─────────────┘
              push!  │  append!
 ┌───────────────────▼───────────────────┐
 │ Trajectory                            │
 │  ┌─────────────────────────────────┐  │
 │  │ Traces                          │  │
 │  │          ┌───────────────────┐  │  │
 │  │   state: │CircularArrayBuffer│  │  │
 │  │          └───────────────────┘  │  │
 │  │          ┌───────────────────┐  │  │
 │  │   action:│CircularArrayBuffer│  │  │
 │  │          └───────────────────┘  │  │
 │  │   ......                        │  │
 │  └─────────────────────────────────┘  │
 |    Sampler                            |
 └───────────────────┬───────────────────┘
                     │ batch sampling
      ┌──────────────▼─────────────┐
      │(state=..., action=..., ...)│
      └────────────────────────────┘
 ┌──────────────┐    ┌──────────────┐
 │Single Element│    │Batch Elements│
 └──────┬───────┘    └──────┬───────┘
        │                   │
  push! └──────┐    ┌───────┘ append!
               │    │
 ┌─────────────┼────┼─────────────────────────────┐
 │          ┌──▼────▼──┐     AsyncTrajectory      │
 │          │Channel In│                          │
 │          └─────┬────┘                          │
 │          take! │                               │
 │          ┌─────▼─────┐   push!  ┌────────────┐ │
 │          │RateLimiter├──────────► Trajectory │ │
 │          └─────┬─────┘  append! └────*───────┘ │
 │                │                     *         │
 │           put! │**********************         │
 │                │     batch sampling            │
 │          ┌─────▼─────┐                         │
 │          │Channel Out│                         │
 │          └───────────┘                         │
 └────────────────────────────────────────────────┘

Acknowledgement

This async version is mainly inspired by deepmind/reverb.

About

A generalized data storage for reinforcement learning

License:MIT License


Languages

Language:Julia 100.0%