twitter / torch-twrl
- воскресенье, 18 сентября 2016 г. в 03:15:50
Lua
Torch-twrl is a package that enables reinforcement learning in Torch.
torch-twrl is an RL framework built in Lua/Torch by Twitter.
Install torch
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh
Install torch-twrl
git clone --recursive https://github.com/twitter/torch-twrl.git
cd torch-twrl
luarocks make
Start a virtual environment, not necessary but it helps keep your installation clean
Download and install OpenAI Gym, gym-http-api requirements, and ffmpeg
pip install virtualenv
virtualenv venv
source venv/bin/activate
pip install gym
pip install -r src/gym-http-api/requirements.txt
brew install ffmpeg
You should have everything you need:
python src/gym-http-api/gym_http_server.py
cd examples
chmod u+x cartpole-pg.sh
./cartpole-pg.sh
This script sets parameters for the experiment, in detail here is what it is calling:
th run.lua \
-env 'CartPole-v0' \
-policy categorical \
-learningUpdate reinforce \
-model mlp \
-optimAlpha 0.9 \
-timestepsPerBatch 1000 \
-stepsizeStart 0.3 \
-gamma 1 \
-nHiddenLayerSize 10 \
-gradClip 5 \
-baselineType padTimeDepAvReturn \
-beta 0.01 \
-weightDecay 0 \
-windowSize 10 \
-nSteps 1000 \
-nIterations 1000 \
-video 100 \
-optimType rmsprop \
-verboseUpdate true \
-uploadResults false \
-renderAllSteps false
Your results should look something our results from the OpenAI Gym leaderboard
1) Test the gym-http-api
cd /src/gym-http-api/
nose2
2) Start a Gym HTTP server in your virtual environment
python src/gym-http-api/gym_http_server.py
3) In a new console window (or tab), run torch-twrl tests
luarocks make; th test/test.lua
Testing of RL development is a tricky endeavor, it requires well established, unified, baselines and a large community of active developers. The OpenAI Gym provides a great set of example environments for this purpose. Link: https://github.com/openai/gym
The OpenAI Gym is written in python and it expects algorithms which interact with its various environments to be as well. torch-twrl is compatible with the OpenAI Gym with the use of a modified Gym HTTP API, based on the original code from OpenAI; gym-http-api is a submodule of torch-twrl.
All Lua dependencies should be installed on your first build.
Note: if you make changes, you will need to recompile with
luarocks make
torch-twrl implements several agents, they are located in src/agents. Agents are defined by a model, policy, and learning update.
The OpenAI Gym has many environments and is continuously growing. Some agents may be compatible with only a subset of environments. That is, an agent built for continuous action space environments may not work if the environment expects discrete action spaces.
Here is a useful table of the environments, with details on the different variables that may help to configure agents appropriately.
torch-twrl is released under the MIT License. Copyright (c) 2016 Twitter, Inc.