Skip to content

Trainable Beta 1.0

Choose a tag to compare

@dberweger2017 dberweger2017 released this 01 Mar 13:46
· 1766 commits to main since this release

The code is now stable enough to use. There are four different ways to train:

Training Commands

Basic Training (vs. Random Agents)

Train a new agent against random opponents:

python train.py --iterations 1000 --traversals 200

Continue Training from Checkpoint

Resume training from a saved checkpoint against random opponents:

python train.py --checkpoint models/checkpoint_iter_1000.pt --iterations 1000

Self-Play Training

Train against a fixed checkpoint opponent:

python train.py --checkpoint models/checkpoint_iter_1000.pt --self-play --iterations 1000

Mixed Checkpoint Training

Train against a rotating pool of checkpoint opponents:

python train.py --mixed --checkpoint-dir models --model-prefix t_ --refresh-interval 1000 --num-opponents 5 --iterations 10000

Continue an existing agent with mixed checkpoint training:

python train.py --mixed --checkpoint models/checkpoint_iter_1000.pt --checkpoint-dir models --model-prefix t_ --iterations 1000

Parameters

Parameter Description Default
--iterations Number of training iterations 1000
--traversals Number of game traversals per iteration 200
--save-dir Directory to save model checkpoints "models"
--log-dir Directory for TensorBoard logs "logs/deepcfr"
--checkpoint Path to a checkpoint file to continue training None
--verbose Enable detailed output False
--self-play Train against a checkpoint instead of random agents False
--mixed Use mixed checkpoint training False
--checkpoint-dir Directory containing checkpoint models for mixed training "models"
--model-prefix Prefix for models to include in the mixed training pool "t_"
--refresh-interval How often to refresh opponents in mixed training 1000
--num-opponents Number of checkpoint opponents to use in mixed training 5

Training Strategies

Random Opponent Training

  • Fastest training method
  • Good for initial learning
  • Agent may overfit to exploit random play

Self-Play Training

  • Trains against a fixed strong opponent
  • Helps develop more balanced strategies
  • May develop specific counter-strategies against the opponent

Mixed Checkpoint Training

  • Most robust training method
  • Prevents overfitting to specific opponent types
  • Provides diverse learning experiences
  • Closest approximation to Nash equilibrium training

Monitoring Training

Monitor training progress with TensorBoard:

tensorboard --logdir=logs

Then open http://localhost:6006 in your browser.