moabitcoin / cherry-pytorch Goto Github PK
View Code? Open in Web Editor NEWReinforcement Learning Tutorials & other bedtime stories in PyTorch
License: MIT License
Reinforcement Learning Tutorials & other bedtime stories in PyTorch
License: MIT License
As default pre-processing
Adapt agents to the following API proposal
Currently we don't have push rights to moabitcoin/cherry-torch-<cpu/gpu>
. Its recommended to build from source. We want to support Docker pull/run
Currently we use scikit video to write env states to video for visualising the results. We want to move to gym.wrappers.Monitor
to do the same.
Sample code from here
Atari
We want to port learnings from Atari + DQN into Agent of Doom
Currently all agents are training with logging.INFO
logging enabled. We'd like to expose user configured logging level enabled from CLI
parser = argparse.ArgumentParser('Train an RL Agent to'
' play Atari Game (DQN)')
parser.add_argument('-x', dest='config_file', type=str,
help='Config for the Atari env/agent', required=True)
parser.add_argument('-d', dest='device', choices=['gpu', 'cpu'],
help='Device to run the train/test', default='gpu')
parser.add_argument('-v', dest='verbosity', choices=['info', 'debug', 'warning,
'error'],
help='Logging verbosity level ', default='info')
Using instructions here. Modify DoomEnvironment
to mimic OpenAI gym wrapper
Import learning for Policy Gradients
& Actor Critic
for ALE (Arcade Learning Environment)
Currently we don't track code version with the model version this can lead to inability to re-produce results.
git
python package to get commit tag.git
commit tag as a prefix when saving model filesgit
commit tag to logsgit
commit tags to yaml config files at exp_dir
Currently DoomEnvironment
gets default setting from the *.cfg/*.wad
files. The default rewards from the DoomGame
do not account for any change to the reward
based on any changes to GameVariable
.
We would like the DoomEnvironment
to be configurable via config
yaml file to account for changes to rewards
based on available GameVariable
.
F.ex include GameVariable.AMMO
in basic.cfg
to budget weapon fire. and GameVariable.HEALTH
for health_gathering.cfg
to incentivise gathering of medkits
Currently we only support using cherry
within a conda ๐ environment. We'd like to add support for building/running docker image. Following functionalities are handy
cherry
Sample setup from here
We need explanation on the design principles and documentations of agents/model architectures/environment
We want to port the following changes from DQN into DDQN
wrapper_deepmind
for Atari gamesBring in learnings from Atari into Doom for faster learning
We currently train Atari models with DQN + DDQN. VPG (Vanilla Policy Gradient) have shown to be a better structured agent (as tested on Control problems / Health gathering in Doom).
Generate model + hyper params which can solve Breakout Atari retro game
We want to support Trusted Region Policy Optimisation and Proximal Policy Optimisation
Currently at playtime the gameplay + actions are written to a video file. We'd like an option for viewing the current gameplay rendered in realtime for debugging.
Use PyTorch dataloader class to read from buffer/replay than running sequential over the batch
Implement ideas from here
Currently we keep 2 * 4 frame states in buffer this can be reduced to 5 with first 4 frames the current state and last 4 the next state
Use TensorboardX for monitoring training / validation session
Adapt DoomEnviroment
and yaml config files to solve health_gathering
scenario.
Currently the codebase is organised as follows
โโโ ddqn
โย ย โโโ atari
โย ย โโโ doom
โโโ dqn
โย ย โโโ atari
โย ย โโโ doom
โโโ policy_gradients
โย ย โโโ atari
โย ย โโโ classic_control
โย ย โโโ doom
โโโ q-learning
โโโ utils
Rather than running via an entry scripts as we do currently. We'd like a cli
: bin/cherry
We'd to like to re-organise as follow
โโโ agents
โย ย โโโ dqn
โย ย โโโ ddqn
โย ย โโโ q_learning
โย ย โโโ policy_gradient
โโโ envs
โย ย โโโ atari
โย ย โโโ doom
โย ย โโโ classic_control
โโโ configs
โย ย โโโ doom.yaml
โย ย โโโ atari.yaml
โโโ utils
โโโ bin/cherry
And run as follows
bin/cherry train -cfg configs/doom.yaml
bin/cherry play -cfg configs/doom.yaml
Provide convenient download link for pre-trained models with performance/evaluation guarantees.
As default Frame Queue
Currently we include null_state
to infer terminal
or game over
state. This can be factored out by using (1 - done) * gamma * Q
DQN & DDQN don't perform well for large action space problems like deadly_corridor
& health_gathering
. For this we want to explore
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.