Skip to main content

Overview

DOOM Neuron automatically saves training checkpoints during PPO training. Checkpoints allow you to:
  • Resume training after interruptions
  • Evaluate trained policies in watch mode
  • Transfer learning between scenarios
  • Backup training progress
The current working checkpoint directory is checkpoints/l5_2048_rand. Make copies of this directory to preserve training states.

Checkpoint Location

By default, checkpoints are saved to:

What’s Saved in Checkpoints

Each .pt file contains:
  • Policy network weights (encoder + decoder)
  • Value network weights
  • Optimizer state (Adam parameters)
  • Episode number
  • Training statistics
  • PPO configuration

Saving Checkpoints

Automatic Saving

Checkpoints are saved automatically during training:
Checkpoints are typically saved:
  • Every N episodes (configured in code)
  • When training completes (final_model.pt)
  • On graceful shutdown (Ctrl+C)

Manual Backup

To preserve a checkpoint directory:
Do not modify files while training is running. Stop training with Ctrl+C before copying checkpoint directories.

Loading Checkpoints

Load checkpoints to resume training or run inference.

Resume Training

Resume from a specific checkpoint:
This will:
  • Restore policy, value, and optimizer states
  • Continue from episode 5000
  • Preserve learning rate schedule
  • Use existing TensorBoard logs

Watch Mode (Inference)

Run a trained policy without further learning:
What happens in watch mode:
  • Runs trainer.train() without policy updates
  • Policy network frozen (no gradient updates)
  • Useful for evaluation and demonstration
  • Still requires CL1 interface running
Watch mode uses direct hardware access. The UDP interface has not been ported to watch mode yet. Ensure you’re using compatible hardware.

Advanced Scenarios

Transfer Learning Between Scenarios

Load a checkpoint trained on one scenario and continue on another:
1

Train on Easier Scenario

Start with deadly_corridor_1.cfg:
Train until convergence, producing checkpoints/corridor_stage1/final_model.pt.
2

Resume on Harder Scenario

Load stage 1 checkpoint and continue on stage 2:
Update PPOConfig.doom_config in code to "deadly_corridor_2.cfg" before running.
3

Fine-tune with Lower Learning Rate

For harder scenarios like stage 5, reduce learning rate:

Checkpoint Comparison

Evaluate multiple checkpoints to find the best performer:

Backup Strategy

Recommended backup workflow for long training runs:
Run backups during natural breaks in training (e.g., after completing a curriculum stage or every 1000 episodes).

Checkpoint File Format

Checkpoint files are PyTorch .pt files (pickled dictionaries):

Inspecting Checkpoints

Load and inspect checkpoint contents:

Troubleshooting

Checkpoint Not Found

Error: FileNotFoundError: checkpoints/episode_5000.pt Solutions:
  • Verify file exists: ls -lh checkpoints/
  • Use absolute path: --checkpoint /home/user/doom-neuron/checkpoints/episode_5000.pt
  • Check for typos in filename

Incompatible Checkpoint

Error: RuntimeError: Error loading state_dict Solutions:
  • Checkpoint may be from different model architecture
  • Ensure PPOConfig matches checkpoint configuration
  • Check PyTorch version compatibility
  • Try loading with map_location='cpu' first

Missing TensorBoard Logs

Symptom: TensorBoard shows no data after resuming Solutions:
  • Ensure checkpoint_dir matches original training directory
  • TensorBoard logs are in checkpoints/l5_2048_rand/logs/
  • Use --logdir pointing to correct logs directory
  • New logs append to existing event files

Disk Space Issues

Symptom: Training fails with disk full error Solutions:
  • Monitor disk usage: df -h
  • Remove old checkpoints: rm checkpoints/episode_*.pt
  • Keep only periodic checkpoints (every 1000 episodes)
  • Compress old checkpoints: gzip checkpoints/episode_*.pt
  • Use external storage for long-term backups

Output Files Summary

Training outputs:
CL1 recordings:

Best Practices

1

Save Frequently

Configure checkpoint frequency based on training duration:
  • Short runs (under 1000 episodes): Save every 100 episodes
  • Long runs (over 10000 episodes): Save every 500-1000 episodes
2

Keep Multiple Versions

Don’t rely on a single checkpoint:
  • Keep last 3-5 periodic checkpoints
  • Save milestone checkpoints (curriculum completions)
  • Backup final_model.pt before new training runs
3

Name Descriptively

Use informative checkpoint names:
4

Monitor Disk Usage

Each checkpoint is ~50-200 MB depending on architecture:

Next Steps

  • Learn about DOOM scenarios to train across different challenges
  • Set up remote training for production checkpoint workflows
  • Monitor training with TensorBoard: tensorboard --logdir checkpoints/l5_2048_rand/logs