https://github.com/nhynes/abc
SeqGAN but with more bells and whistles
https://github.com/nhynes/abc
deep-reinforcement-learning gan pytorch seqgan
Last synced: about 2 months ago
JSON representation
SeqGAN but with more bells and whistles
- Host: GitHub
- URL: https://github.com/nhynes/abc
- Owner: nhynes
- License: mit
- Created: 2017-11-12T18:39:13.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-02-15T02:57:00.000Z (over 7 years ago)
- Last Synced: 2025-03-18T20:07:22.703Z (2 months ago)
- Topics: deep-reinforcement-learning, gan, pytorch, seqgan
- Language: Python
- Homepage:
- Size: 130 KB
- Stars: 24
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Adversarial Behavioral Cloning
Improves on the [SeqGAN](https://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14344)
idea by adding more reinfocement learning and GAN techniques like:
* a replay buffer
* [Consensus Optimization](https://arxiv.org/abs/1705.10461)
* [count-based exploration bonus](https://arxiv.org/abs/1611.04717)
* Proximal Policy Optimization (was not found to help, but can be found in
[this commit](https://github.com/nhynes/abc/commit/af7d921ab96e20ba75a60558e1e293b8667b4480))
* advantage normalization## How to run
If you wish to enable Consensus Optimization (via the `--grad-reg` option), you'll need
to [patch](scripts/dx2_rnn.patch) PyTorch to allow forcing the use a
twice-differentiable RNN.`python3 main.py` will run the project with the default options.
Output will be written to the `run/` directory.## Shameless plug
The [em](https://github.com/nhynes/em) tool makes it really easy to twiddle
hyperparameters by tracking changes to code (no need to make everything an option!).Just run `em run -g 0 exp_name` with your desired options and you'll find a reproducable
snapshot in `experiments/`!If you want to resume from a snapshot (perhaps with different options),
use `em resume -g 0 exp_name ...`You can also fork an experiment and its changes using `em fork`, but the quick and dirty
solution is to run `bash scripts/make_links.sh` :)