OpenNetLab / gym

This gym leverages NS3 and WebRTC, which can be used by reinforcement learning or other methods to build a Bandwidth Controller for WebRTC
37 stars 14 forks source link

Gym

Build Status

This gym leverages NS3 and WebRTC, which can be used by reinforcement learning or other methods to build a Bandwidth Controller for WebRTC.

Usage

You can use this Gym by a Python interface that was defined in gym.py. Here is an example gym-example to use this Gym training a bandwidth estimator.

Setup Guide

Get Gym

git clone https://github.com/OpenNetLab/gym gym
cd gym

Install dependencies(Ubuntu 18.04 or Ubuntu 20.04)

sudo apt install libzmq5 python3 python3-pip
python3 -m pip install -r requirements.txt
# Install Docker
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ${USER}

Download pre-compiled binary

If your OS is ubuntu18.04 or ubuntu20.04, we recommend you directly downloading pre-compiled binary, and please skip the step Build Gym binary

The pre-compiled binary can be found from the latest GithubRelease. Please download and uncompress it in the current folder.

wget https://github.com/OpenNetLab/gym/releases/latest/download/target.tar.gz
tar -xvzf target.tar.gz

Build Gym binary

make init
make sync
make gym # build_profile=debug

If you want to build the debug version, try make gym build_profile=debug

Verify gym

python3 -m pytest alphartc_gym

Inspiration

Thanks SoonyangZhang provides the inspiration for the gym