Pensieve is a system that generates adaptive bitrate algorithms using reinforcement learning. http://web.mit.edu/pensieve/
python setup.py
sim/cooked_traces
and testing data in sim/cooked_test_traces
, then in sim/
run python get_video_sizes.py
and then run
python multi_agent.py
The reward signal and meta-setting of video can be modified in multi_agent.py
and env.py
. More details can be found in sim/README.md
.
test/models
and modify the NN_MODEL
field of test/rl_no_training.py
, and then in test/
run python get_video_sizes.py
and then run
python rl_no_training.py
Similar testing can be performed for buffer-based approach (bb.py
), mpc (mpc.py
) and offline-optimal (dp.cc
) in simulations. More details can be found in test/README.md
.
rl_server/results
and modify the NN_MODEL
filed of rl_server/rl_server_no_training.py
, and then in run_exp/
run
python run_all_traces.py
This script will run all schemes (buffer-based, rate-based, Festive, BOLA, fastMPC, robustMPC and Pensieve) over all network traces stored in cooked_traces/
. The results will be saved to run_exp/results
folder. More details can be found in run_exp/README.md
.
setup.py
automatically installs an apache server and put needed files in /var/www/html
). Then, copy over the trained model to rl_server/results
and modify the NN_MODEL
filed of rl_server/rl_server_no_training.py
. Next, modify the url
field in real_exp/run_video.py
to the server url. Finally, in real_exp/
run
python run_exp.py
The results will be saved to real_exp/results
folder. More details can be found in real_exp/README.md
.