class_docstr: Replay Buffer for storing past experiences allowing the agent to learn from them.
  
  >>> ReplayBuffer(5)  # doctest: +ELLIPSIS
  <...reinforce_learn_Qnet.ReplayBuffer object at ...>
code: def sample(self, batch_size: int) -> Tuple:
      indices = np.random.choice(
          len(self.buffer), batch_size, replace=False
      )
      states, actions, rewards, dones, next_states = zip(
          *(self.buffer[idx] for idx in indices)
      )
  
      return (
          np.array(states),
          np.array(actions),
          np.array(rewards, dtype=np.float32),
          np.array(dones, dtype=np.bool),
          np.array(next_states),
      )
  
imports: import argparse
  from collections import OrderedDict, deque, namedtuple
  from typing import Iterator, List, Tuple
  import gym
  import numpy
  import torch
  import torch.nn
  import torch.optim
  from lightning.pytorch import LightningModule, Trainer, cli_lightning_logo, seed_everything
  from torch.optim.optimizer import Optimizer
  from torch.utils.data import DataLoader
  from torch.utils.data.dataset import IterableDataset
label_desc: Use image node_id 4 for calling the ReplayBuffer obj's underlying member method code with example usage: obj.sample(batch_size) and returns: np,  np,  np,  np,  np