LightZero

教程

  • 安装和快速入门指南
  • 如何在 LightZero 中自定义你的算法?
  • 如何在 LightZero 中自定义您的环境?
  • 如何在 LightZero 中设置配置文件
  • LightZero 的日志记录和监控系统

API 文档

  • 代理
  • 配置
  • 条目
  • 环境
  • MCTS
    • 缓冲区
    • 树搜索
      • MuZeroMCTSCtree
        • MuZeroMCTSCtree.__init__()
        • MuZeroMCTSCtree.config
        • MuZeroMCTSCtree.default_config()
        • MuZeroMCTSCtree.roots()
        • MuZeroMCTSCtree.search()
        • MuZeroMCTSCtree.search_with_reuse()
      • EfficientZeroMCTSCtree
        • EfficientZeroMCTSCtree.__init__()
        • EfficientZeroMCTSCtree.config
        • EfficientZeroMCTSCtree.default_config()
        • EfficientZeroMCTSCtree.roots()
        • EfficientZeroMCTSCtree.search()
        • EfficientZeroMCTSCtree.search_with_reuse()
      • GumbelMuZeroMCTSCtree
        • GumbelMuZeroMCTSCtree.__init__()
        • GumbelMuZeroMCTSCtree.config
        • GumbelMuZeroMCTSCtree.default_config()
        • GumbelMuZeroMCTSCtree.roots()
        • GumbelMuZeroMCTSCtree.search()
  • 模型
  • 政策
  • 工人
LightZero
  • <no title>
  • MCTS
  • 树搜索
  • 查看页面源码

树搜索

class lzero.mcts.tree_search.mcts_ctree.MuZeroMCTSCtree(cfg: EasyDict = None)[源代码]

基类:object

概述:

MCTSCtree for MuZero。核心的 batch_traverse 和 batch_backpropagate 函数是用 C++ 实现的。

接口:

__init__, roots, search

__init__(cfg: EasyDict = None) → None[源代码]
概述:

使用默认的配置机制。如果用户传入的 cfg 中有一个键与默认配置中的现有键匹配,用户提供的值将覆盖默认配置。否则,将使用默认配置。

config = {'env_type': 'not_board_games', 'pb_c_base': 19652, 'pb_c_init': 1.25, 'root_dirichlet_alpha': 0.3, 'root_noise_weight': 0.25, 'value_delta_max': 0.01}
classmethod default_config() → EasyDict[源代码]
classmethod roots(active_collect_env_num: int, legal_actions: List[Any]) → mz_ctree[源代码]
概述:

使用根数和合法动作列表初始化 CRoots。

参数:
  • root_num (-) – 当前根的编号。

  • legal_action_list (-) – 这个根的法律行动的向量。

search(roots: Any, model: Module, latent_state_roots: List[Any], to_play_batch: int | List[Any]) → None[源代码]
概述:

对根节点执行MCTS(并行处理一批根节点)。在模型推理中并行。使用cpp ctree。

参数:
  • roots (-) – 一批扩展的根节点

  • latent_state_roots (-) – 根的隐藏状态

  • to_play_batch (-) – 在自对弈模式棋类游戏中使用的 to_play_batch 列表

search_with_reuse(roots: Any, model: Module, latent_state_roots: List[Any], to_play_batch: int | List[Any], true_action_list=None, reuse_value_list=None) → None[源代码]
概述:

对根节点并行执行蒙特卡洛树搜索(MCTS)。利用cpp ctree以提高效率。更多详情请参阅 https://arxiv.org/abs/2404.16364。

参数:
  • roots (-) – 一批扩展的根节点。

  • model (-) – 神经网络模型。

  • latent_state_roots (-) – 根节点的隐藏状态。

  • to_play_batch (-) – 自我对弈模式下玩家的列表或批处理指示器。

  • true_action_list (-) – 一个可重用的真实操作列表。

  • reuse_value_list (-) – 可重用的值列表。

class lzero.mcts.tree_search.mcts_ctree.EfficientZeroMCTSCtree(cfg: EasyDict = None)[源代码]

基类:object

概述:

EfficientZero 的 MCTS(批处理格式)的 C++ 实现。它通过调用模块 ctree_efficientzero 中的函数来完成 roots 和 search 方法,这些函数是用 C++ 实现的。

接口:

__init__,roots,search

..注意:

同时搜索一批节点的优势在于,它可以在模型推理期间并行化,从而节省时间。

__init__(cfg: EasyDict = None) → None[源代码]
概述:

使用默认的配置机制。如果用户传入的 cfg 中有一个键与默认配置中的现有键匹配,用户提供的值将覆盖默认配置。否则,将使用默认配置。

参数:

cfg (-) – 用户传入的配置。

config = {'pb_c_base': 19652, 'pb_c_init': 1.25, 'root_dirichlet_alpha': 0.3, 'root_noise_weight': 0.25, 'value_delta_max': 0.01}
classmethod default_config() → EasyDict[源代码]
概述:

一个返回 EasyDict 对象形式的默认配置的类方法。

返回:

默认配置的字典。

返回类型:

  • cfg (EasyDict)

classmethod roots(active_collect_env_num: int, legal_actions: List[Any]) → ez_ctree.Roots[源代码]
概述:

初始化一批根目录,以便稍后并行搜索。

参数:
  • root_num (-) – 一批中的根数。

  • legal_action_list (-) – 根的法律行动向量。

..注意:

初始化通过 ctree_efficientzero 模块中的 Roots 类实现。

search(roots: Any, model: Module, latent_state_roots: List[Any], reward_hidden_state_roots: List[Any], to_play_batch: int | List[Any]) → None[源代码]
概述:

对一批根节点执行蒙特卡洛树搜索。模型推断是并行的。使用C++实现树搜索。

参数:
  • roots (-) – 一批扩展的根节点。

  • latent_state_roots (-) – 根的隐藏状态。

  • reward_hidden_state_roots (-) – 根的LSTM中的值前缀隐藏状态。

  • model (-) – 用于推理的模型。

  • to_play (-) – 在自对弈模式棋类游戏中使用的 to_play 列表。

备注

核心函数 batch_traverse 和 batch_backpropagate 是用 C++ 实现的。

search_with_reuse(roots: Any, model: Module, latent_state_roots: List[Any], reward_hidden_state_roots: List[Any], to_play_batch: int | List[Any], true_action_list=None, reuse_value_list=None) → None[源代码]

对根节点并行执行蒙特卡洛树搜索(MCTS),利用模型推理并行进行。此方法使用cpp ctree以提高效率。更多详情请参阅 https://arxiv.org/abs/2404.16364。

参数:
  • roots (-) – 一批扩展的根节点。

  • model (-) – 用于推理的模型。

  • latent_state_roots (-) – 根节点的隐藏状态。

  • reward_hidden_state_roots (-) – LSTM 根部的隐藏状态值前缀。

  • to_play_batch (-) – 在自玩模式棋盘游戏中使用的 to_play_batch 列表。

  • true_action_list (-) – 可重用的真实操作列表。

  • reuse_value_list (-) – 可重用的值列表。

返回:

无

class lzero.mcts.tree_search.mcts_ctree.GumbelMuZeroMCTSCtree(cfg: EasyDict = None)[源代码]

基类:object

概述:

Gumbel MuZero 的 C++ 实现(批处理格式)。它通过调用模块 ctree_gumbel_muzero 中的函数来完成 roots 和 search 方法,这些函数是用 C++ 实现的。

接口:

__init__,roots,search

..注意:

同时搜索一批节点的优势在于,它可以在模型推理期间并行化,从而节省时间。

__init__(cfg: EasyDict = None) → None[源代码]
概述:

使用默认的配置机制。如果用户传入的 cfg 中有一个键与默认配置中的现有键匹配,用户提供的值将覆盖默认配置。否则,将使用默认配置。

参数:

cfg (-) – 用户传入的配置。

config = {'num_simulations': 50, 'root_dirichlet_alpha': 0.3, 'root_noise_weight': 0.25, 'value_delta_max': 0.01}
classmethod default_config() → EasyDict[源代码]
概述:

一个返回 EasyDict 对象形式的默认配置的类方法。

返回:

默认配置的字典。

返回类型:

  • cfg (EasyDict)

classmethod roots(active_collect_env_num: int, legal_actions: List[Any]) → gmz_ctree[源代码]
概述:

初始化一批根目录,以便稍后并行搜索。

参数:
  • root_num (-) – 一批中的根数。

  • legal_action_list (-) – 根的法律行动向量。

..注意:

初始化是通过 ctree_gumbel_muzero 模块中的 Roots 类实现的。

search(roots: Any, model: Module, latent_state_roots: List[Any], to_play_batch: int | List[Any]) → None[源代码]
概述:

对一批根节点执行蒙特卡洛树搜索。模型推断是并行的。使用C++实现树搜索。

参数:
  • roots (-) – 一批扩展的根节点。

  • latent_state_roots (-) – 根的隐藏状态。

  • model (-) – 用于推理的模型。

  • to_play (-) – 在自对弈模式棋类游戏中使用的 to_play 列表。

备注

核心函数 batch_traverse 和 batch_backpropagate 是用 C++ 实现的。

上一页 下一页

© 版权所有 2023, OpenDILab Contributors.

利用 Sphinx 构建,使用的 主题 由 Read the Docs 开发.