Hugging Face model: chrisjcc/utdg-maskableppo-policy
Author: chrisjcc
Created: 2025-11-21 01:21:56
Last modified: 2025-12-27 18:33:33
Pipeline: reinforcement-learning
Library: stable-baselines3
Likes: 0 | Downloads: 1
Tags: stable-baselines3, reinforcement-learning, sb3-contrib, gymnasium, maskable-ppo, utdg, tower-defense, game-ai, deep-reinforcement-learning, en, dataset:custom-utdg-env, license:mit, model-index, region:us
Card metadata:
language: en
license: mit
library_name: stable-baselines3
tags: reinforcement-learning, stable-baselines3, sb3-contrib, gymnasium, maskable-ppo, utdg, tower-defense, game-ai, deep-reinforcement-learning
datasets: custom-utdg-env
metrics: episode_reward, episode_length
pipeline_tag: reinforcement-learning
metadata: utc_timestamp: 2025-12-27T18:33:32.663Z
env_name: UTDGEnv-v0
model_file: model_policy_v0.3.5.zip
total_timesteps: 0
learning_rate: 0.0003
n_steps: 2048
batch_size: 64
n_epochs: 10
gamma: 0.99
gae_lambda: 0.95
clip_range: 0.2
ent_coef: 0.001
vf_coef: 0.5
task: reinforcement-learning
algorithm: MaskablePPO
game: Untitled Tower Defense Game
hydra_config: {
  "runtime": {
    "mode": "web-hf-train",
    "web": {
      "enabled": true,
      "path": "builds/web",
      "http_port": 8080
    },
    "launcher": {
      "enabled": false,
      "mode": null,
      "auto_port": false,
      "browser": false,
      "headless": false
    },
    "connection": {
      "type": "websocket",
      "role": "server",
      "url": null,
      "timeout": 60.0,
      "reconnect_attempts": 5
    },
    "server": {
      "enabled": true,
      "host": "0.0.0.0",
      "port": 7860,
      "routes": {
        "ui": "/ws",
        "godot": "/godot"
      }
    },
    "godot_path": null,
    "max_episode_steps": 5000,
    "resume": false,
    "checkpoint_path": "checkpoints/maskableppo_utdg_100000_steps.zip"
  },
  "env": {
    "observation_space": {
      "include_enemy_health": true,
      "include_tower_stats": true,
      "grid_resolution": 32,
      "normalize": true
    },
    "action_space": {
      "type": "discrete",
      "max_towers": 10
    },
    "episode": {
      "max_episode_steps": 5000,
      "truncate_on_life_lost": false,
      "starting_gold": 150,
      "base_health": 10
    }
  },
  "agent": {
    "type": "maskable_ppo",
    "deterministic": true
  },
  "model": {
    "policy": "MaskableActorCriticPolicy",
    "learning_rate": 0.0003,
    "n_steps": 2048,
    "batch_size": 64,
    "n_epochs": 10,
    "gamma": 0.99,
    "gae_lambda": 0.95,
    "clip_range": 0.2,
    "normalize_advantage": true,
    "ent_coef": 0.001,
    "vf_coef": 0.5,
    "max_grad_norm": 0.5
  },
  "training": {
    "total_timesteps": 200000,
    "device": "auto",
    "log_interval": 2048,
    "progress_bar": true,
    "verbose": 1,
    "curriculum": {
      "enabled": false,
      "initial_max_steps": 500,
      "step_increase": 1000,
      "reward_thresholds": [
        -50,
        -25,
        0,
        25,
        50,
        100
      ],
      "window_size": 20,
      "max_steps_cap": 10000
    }
  },
  "checkpoint": {
    "enabled": true,
    "save_path": "checkpoints",
    "save_freq": 10000,
    "save_best_only": true,
    "keep_last": 3,
    "name_prefix": "model_policy",
    "save_replay_buffer": false,
    "save_vecnormalize": false
  },
  "callbacks": {
    "wandb": {
      "enabled": true,
      "project": "utdg",
      "entity": "rl4aa",
      "run_name": null,
      "tags": [],
      "mode": "online",
      "save_code": true,
      "eval_enabled": false
    },
    "hf_upload": {
      "enabled": true,
      "repo_id": "chrisjcc/utdg-maskableppo-policy",
      "private": true,
      "repo_type": "model",
      "token": null,
      "metadata": {
        "task": "reinforcement-learning",
        "algorithm": "MaskablePPO",
        "game": "Untitled Tower Defense Game"
      },
      "push_strategy": "final",
      "local_model_path": "",
      "upload_freq": 10000,
      "commit_message": "Upload model checkpoint",
      "lfs": {
        "use_lfs": true,
        "files": [
          "*.zip",
          "*.onnx"
        ]
      }
    }
  },
  "experiment": {
    "name": "utdg_experiment",
    "seed": 42,
    "log_dir": "logs"
  },
  "logging": {
    "level": "INFO",
    "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
  }
}