# 德州扑克AI **Repository Path**: miracle199827/texas-holdem-ai ## Basic Information - **Project Name**: 德州扑克AI - **Description**: 强化学习DQN算法的德州扑克AI - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 3 - **Created**: 2025-02-11 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Texas Poker AI Training 基于深度强化学习的德州扑克AI训练系统。本项目实现了一个完整的德州扑克游戏环境和多种AI策略,包括DQN、GTO、MES等。 ## 特性 - 完整的德州扑克游戏环境 - 多种AI策略实现: - DQN (Deep Q-Network) - GTO (Game Theory Optimal) - MES (Maximum Exploitation Strategy) - 决策树策略 - GPU加速支持 - 自适应学习率 - 多人游戏支持 - ICM模型集成 - 实时训练指标追踪 ## 系统要求 - Python 3.7+ - PyTorch 1.8+ - CUDA 11.0+ (用于GPU训练) - NumPy - scikit-learn ## 安装 1. 克隆仓库: ```bash git clone [repository-url] cd train-texas-poker ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` ## GPU训练支持 本项目支持GPU训练加速,主要特性包括: - 自动检测并使用可用的GPU设备 - 自动混合精度训练 (AMP) - 批量状态编码和并行计算 - 优化的内存使用 - 动态学习率调整 要启用GPU训练,确保: 1. 已安装CUDA和cuDNN 2. PyTorch安装时包含CUDA支持 3. 系统中有可用的NVIDIA GPU 系统会自动检测是否有可用的GPU设备,并相应地调整训练过程。 ## 使用方法 1. 训练AI: ```bash python training/self_play.py ``` 2. 评估模型: ```bash python training/evaluate.py ``` 3. 人机对战: ```bash python play_against_ai.py ``` ## 项目结构 ``` train-texas-poker/ ├── agents/ # AI代理实现 │ ├── dqn_agent.py # DQN代理 │ ├── strategy.py # 策略实现 │ └── models.py # 神经网络模型 ├── poker/ # 扑克游戏核心 │ ├── card.py # 扑克牌类 │ ├── game.py # 游戏逻辑 │ └── evaluator.py # 牌型评估器 ├── training/ # 训练相关 │ ├── self_play.py # 自我对弈训练 │ └── evaluate.py # 模型评估 └── models/ # 预训练模型存储 ``` ## 训练配置 可以通过修改代理类中的参数来调整训练过程: - batch_size: 训练批次大小 - gamma: 折扣因子 - learning_rate: 学习率 - epsilon: 探索率 - memory_size: 经验回放缓冲区大小 GPU相关配置: ```python # 在agents/dqn_agent.py中 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # 启用自动混合精度 scaler = amp.GradScaler() ``` ## 性能优化 1. 使用批量处理提高GPU利用率 2. 实现了优先经验回放 3. 使用自动混合精度训练 4. 优化了数据预处理和缓存机制 5. 实现了并行状态编码 ## 训练技巧 1. 适当调整batch_size以匹配GPU内存 2. 使用自适应学习率获得更好的收敛性 3. 根据训练进展调整探索率 4. 监控训练指标及时调整参数 ## 许可证 [添加许可证信息] ## 贡献 欢迎提交Issue和Pull Request来改进项目。 ## 致谢 [添加致谢信息]