Git Product home page Git Product logo

gym's Introduction

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

gym's People

Contributors

azson avatar middaywords avatar pterosaur avatar soonyangzhang avatar xiazy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gym's Issues

Can't get the target

I clicked the AzurePipeline from README, but it is impossible to download anything from the target. Well,There is nothing wrong with my Internet.

gym compiling issue

Any idea why compiling gym from source given the following issue?
"
File "/usr/lib/python3.6/functools.py", line 477, in lru_cache
raise TypeError('Expected maxsize to be an integer or None')
TypeError: Expected maxsize to be an integer or None
"

Bug report

I'm using this project to train my reinforcement learning Agent. I found the agent was trapped in a local optimum while training and I found the following phenomenal.
I use the trace which has the fixed capacity of 600k and the duration of 180s:
image
I first manually changed the bandwidth of the RL-agent always be 1000k, it made sense(the base rtt is about 200ms):
image
image

However, my trained RL-agent trapped into this:
image
image
The RTT becomes a minRTT at a very high sending rate! What's more the receiving rate observed by sender side is constantly about 500k and the loss rate is 0%. The pretty high receiving rate and the very low delay made the RL agent think it has learned a nice model so it won't go on optimizing...

image

Is this a bug of the gym?

Question about debugger

Dear authors, Thanks for your effort in this project. This project is very useful.
Currently, we are conducting some experiments based on this project. Since the project is running on docker, we wonder that if it could be run on any c based debugger such as gcc.

Thank you,
You-Sz

Question about video quality

Dear authors,

Thanks for your effort in this project. This project is very useful. We are interested in using this project to conduct some experiments. Currently, we try to get video quality on the receiver side, and using video quality in the reward function of our machine-learning model. We wonder that where should we modify to get the video quality or video file on the receiver side. We appreciate and look forward to any response.

Thank you,
Tse-Hou

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.