diditforlulz273 / PokerRL-Omaha

Omaha Poker functionality+some features for PokerRL Reinforcement Learning card framwork
MIT License
61 stars 15 forks source link
cfr counterfactual-regret-minimization deep-learning monte-carlo-tree-search omaha-poker poker-bot pytorch reinforcement-learning reinforcement-learning-algorithms

PokerRL Omaha

A fork of the original Framework for Multi-Agent Deep Reinforcement Learning in Poker games by Eric Steinberger Combined with SD-CFR and Deep CFR.

Had Texas Hold'em Poker before, Now works with Omaha Poker, unattempted before publically.

Pot Limit Omaha

The Internet lacks any open-source Omaha Poker Reinforcement Learning code, so I created this part myself. While Omaha is orders of magnitude bigger than toy/constrained games used with SD-CFR before, noticeable upgrades have been made into distributed computing scheme to achieve convergency and significantly decrease wall time.

Changes

Only differences are noticed here, compilation and basic usage are exhaustively explained in the original repos. Some new dependencies exist, full dep. list is in requirements_dist.txt.

Used Pycharm+venv for development, so with Conda or other managers you might have to move start scripts to the root folder if encounter any problems with missing internal modules.

Fully functional Pot Limit Omaha game:

Use game type 'PLO' to start, an example is provided in 'examples/PLO_training_start.py'.

GPU-CPU combined distributed scheme

Preflop Hand Bucketing

Optimized Dense Residual Neural Network

Convolutional Neural Network

Leaky ReLU usage for all NNs

Standalone Head to Head Agent evaluator

Standalone LBR Agent evaluator

Hand Logger for H2H Evaluator

Improved Traversal Data generation scheme

Bug fixes