机器学习深度学习【免费下载链接】dopamineDopamine is a research framework for fast prototyping of reinforcement learning algorithms.项目地址https://gitcode.com/gh_mirrors/do/dopamine点击查看免费下载导读dopamine.continuous_domains.run_experiment.create_continuous_runner是 Dopamine 在**连续控制域continuous domains**下的实验 Runner 工厂函数负责根据用户指定的调度类型实例化对应的实验运行器。本文围绕该函数展开先梳理其函数签名与参数语义再深入源码剖析其schedule分发机制、底层ContinuousRunner与ContinuousTrainRunner的构造细节最后结合train.py入口与单元测试给出可复制、可运行的实战配置方案。读完本文你将掌握如何在 MuJoCo 等连续控制环境中一键启动 SAC/PPO 训练实验并理解如何通过 Gin 配置覆盖 Runner 的默认行为。函数签名与核心语义create_continuous_runner定义于仓库源码 dopamine/continuous_domains/run_experiment.py是一个被gin.configurable装饰的工厂函数dopamine.continuous_domains.run_experiment.create_continuous_runner( base_dir, schedulecontinuous_train_and_eval )参数说明参数类型说明base_dirstr承载所有子目录的基础目录checkpoint、日志、TensorBoard 摘要等都会写到这里面schedulestring指定使用哪种类型的 Runner默认值为continuous_train_and_eval返回值返回一个Runner类型的对象ContinuousRunner或ContinuousTrainRunner两者都继承自dopamine.discrete_domains.run_experiment.Runner专门用于JAX/Flax智能体。异常当传入未知的schedule字符串时抛出ValueError。源码中的实现是else: raise ValueError(Unknown schedule: {}.format(schedule))schedule 分发机制两种运行模式的选择create_continuous_runner的主体是一段简单的if/elif/else分发逻辑源码见 run_experiment.py#L125-L133assert base_dir is not None # 持续执行训练与评估直到达到最大迭代次数 if schedule continuous_train_and_eval: return ContinuousRunner(base_dir, create_continuous_agent) # 持续执行训练直到达到最大迭代次数 elif schedule continuous_train: return ContinuousTrainRunner(base_dir, create_continuous_agent) else: raise ValueError(Unknown schedule: {}.format(schedule))两种 schedule 的定位差异清晰continuous_train_and_eval默认返回ContinuousRunner每个迭代iteration内依次执行训练阶段与评估阶段产出完整的训练/评估统计量continuous_train返回ContinuousTrainRunner仅执行训练阶段不进行周期评估适合纯训练或需要自行控制评估时机的场景。注意函数开头还有assert base_dir is not None的守卫断言调用方必须提供有效的基础目录。测试用例的印证仓库测试 tests/dopamine/continuous_domains/run_experiment_test.py 对上述分发逻辑做了参数化验证schedulecontinuous_train_and_eval期望返回run_experiment.ContinuousRunnerschedulecontinuous_train期望返回run_experiment.ContinuousTrainRunner传入非法 schedule如invalid_name时断言抛出ValueError。同时测试通过gin.bind_parameter(create_continuous_agent.agent_name, sac)绑定智能体名称说明该工厂函数与 Gin 配置系统深度集成——这正是gin.configurable装饰器的实际作用。底层 Runner 构造细节默认参数与初始化流程ContinuousRunner的构造函数run_experiment.py#L144-L213继承自离散域的Runner但只面向 JAX/Flax 智能体其默认参数构成了连续控制实验的基准配置参数默认值说明create_environment_fngym_lib.create_gym_environment创建 Gym 环境的工厂函数checkpoint_file_prefixckptcheckpoint 文件前缀logging_file_prefixlog日志文件前缀log_every_n1写日志的频率num_iterations200迭代次数阈值须大于start_iterationtraining_steps250000每个迭代的训练步数evaluation_steps125000每个迭代的评估步数max_steps_per_episode1000单 episode 的最大步数超过即终止clip_rewardsFalse是否将奖励裁剪到[-1, 1]use_legacy_loggerTrue是否使用旧版 Logger即将被CollectorDispatcher取代构造函数内部依次执行_create_directories()创建基础目录结构初始化 TensorBoardSummaryWriter(base_dir)调用create_environment_fn()创建环境默认走 gym_lib.create_gym_environment支持environment_name、version、use_legacy_gym、use_ppo_preprocessing等 Gin 参数调用create_continuous_agent(environment, summary_writer...)创建智能体_initialize_checkpointer_and_maybe_resume(checkpoint_file_prefix)从最新 checkpoint 恢复若存在实现断点续训创建collector_dispatcher.CollectorDispatcher并挂载到智能体若智能体实现了set_collector_dispatcher方法。ContinuousTrainRunner则在父类基础上覆盖了_run_one_iteration只跑训练阶段并把Train/NumEpisodes、Train/AverageReturns、Train/AverageStepsPerSecond写入 TensorBoard 与 CollectorDispatcherrun_experiment.py#L291-L328。构造函数中还会强制self._agent.eval_mode False。环境工厂的可替换性默认的create_gym_environment从 Gym/Gymnasium 创建连续控制环境仓库内置MUJOCO_GAMES (Ant, HalfCheetah, Hopper, Humanoid, Walker2d)见 gym_lib.py#L55并剥离 Gym 的TimeLimit避免 200 步上限再包上GymPreprocessing适配 Dopamine 的 API。你可以通过 Gin 绑定ContinuousRunner.create_environment_fn替换成任意自定义环境工厂测试中正是这样注入 mock 环境的。智能体工厂create_continuous_agent 的配套支持create_continuous_runner在实例化 Runner 时固定传入create_continuous_agent作为智能体工厂run_experiment.py#L42-L108。该工厂同样由gin.configurable装饰根据agent_name分发agent_name返回的智能体关键前提sacsac_agent.SACAgent动作空间与观测空间须为spaces.Box需传入action_limitslow/highppoppo_agent.PPOAgent动作空间与观测空间须为spaces.Boxsac_cale*sac_cale.SACCALEAgentCALE 变体agent_name.startswith(sac_cale)即命中ppo_cale*ppo_cale.PPOCALEAgentCALE 变体agent_name.startswith(ppo_cale)即命中其他抛出ValueError(Unknown agent: ...)—实现细节上SAC 分支会断言isinstance(environment.action_space, spaces.box.Box)并传入action_limits、action_dtype、observation_dtype等连续控制所需的参数未知名称抛出ValueError与测试testCreateContinuousAgentWithInvalidNameRaisesException一一对应run_experiment_test.py#L58-L60。实战通过 train.py 入口启动连续控制实验连续控制域的实验入口脚本为 dopamine/continuous_domains/train.py其主流程如下run_experiment.load_gin_configs(gin_files, gin_bindings) runner run_experiment.create_continuous_runner(base_dir) runner.run_experiment()命令行参数包括Flag类型说明--base_dirstr必填flags.mark_flag_as_required强制承载所有子目录的基础目录--gin_files可多传Gin 配置文件路径列表例如dopamine/jax/agents/sac/configs/sac.gin--gin_bindings可多传覆盖配置文件中取值的 Gin 绑定典型启动命令以 SAC MuJoCo 为例python -m dopamine.continuous_domains.train \ --base_dir/tmp/dopamine/sac \ --gin_filesdopamine/jax/agents/sac/configs/sac.gin \ --gin_bindingscreate_continuous_runner.schedulecontinuous_train_and_eval \ --gin_bindingscreate_continuous_agent.agent_namesac \ --gin_bindingscreate_gym_environment.environment_nameHalfCheetah \ --gin_bindingsContinuousRunner.num_iterations200 \ --gin_bindingsContinuousRunner.training_steps250000要点说明create_continuous_runner因带gin.configurable其参数包括schedule可以直接通过--gin_bindings覆盖create_continuous_agent.agent_name决定使用哪种算法SAC 对应sacPPO 对应ppoContinuousRunner.*系列绑定用于覆盖上文的默认超参迭代数、训练/评估步数等环境名称从MUJOCO_GAMES元组中选取配合 baselines/mujoco/data 下的结果数据可复现实验若仅训练不评估将schedule改为continuous_train即可。实验过程中TensorBoard 摘要、checkpointckpt前缀与日志log前缀都会写入base_dirContinuousRunner在初始化时会自动从最新 checkpoint 恢复天然支持中断续跑。相关 API 与延伸阅读create_continuous_runner属于 dopamine.continuous_domains.run_experiment 模块同模块还包含create_continuous_agent创建连续控制智能体的工厂函数ContinuousRunner训练 评估的 Runner 类ContinuousTrainRunner纯训练的 Runner 类。想进一步深入可阅读 dopamine/continuous_domains/run_experiment.py 的完整源码、离散域基类 dopamine/discrete_domains/run_experiment.py、环境封装 dopamine/discrete_domains/gym_lib.py以及对应单元测试 tests/dopamine/continuous_domains/run_experiment_test.py 来验证行为。赞分享机器学习深度学习【免费下载链接】dopamineDopamine is a research framework for fast prototyping of reinforcement learning algorithms.项目地址https://gitcode.com/gh_mirrors/do/dopamine点击查看免费下载相关推荐如何用 fuels-rs 的 WalletsConfig 3 步搞定多资产测试钱包配置如何用 fuels rs 的 WalletsConfig 3 步搞定多资产测试钱包配置 写合约测试时你大概率会遇到这样的场景一个用例需要 3 个钱包其中每机器学习深度学习curl 多接口连接池总量控制CURLMOPT_MAX_TOTAL_CONNECTIONS 完整实战指南curl 多接口连接池总量控制CURLMOPT_MAX_TOTAL_CONNECTIONS 完整实战指南 本指南围绕 libcurl 多接口multi inCLI网络通信深度解析Dopamine中的SAC算法连续控制任务的强化学习实践深度解析Dopamine中的SAC算法连续控制任务的强化学习实践 Dopamine是Google开发的一个快速原型强化学习算法研究框架专注于为研究人员提供高强化学习机器学习深度学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
LSTM/GRU/RNN时间序列预测实战:从源码包到模型调优 简介:本资源面向计算机、人工智能、数据科学等专业的在校学生与教师,以及需要完成时间序列预测相关课程设计、毕设或初期项目立项的开发者,提供基于LSTM、GRU、RNN三种循环神经网络的完整预测方案。压缩包共15个文件,约5.83MB&… · 2026/9/23 12:30:40
零代码部署 OpenClaw 桌面自动化助手:TaoToken 统一 Key 配置与 45.7MB 安装包验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/23 12:30:40
离职必须提前一个月吗源码解析:3个坑让面试直接挂 离职必须提前一个月吗源码解析:3个坑让面试直接挂 面试被问“离职必须提前一个月吗”,你张口就是“劳动法规定”,结果面试官追问“如果试用期呢?如果公司违法辞退呢?”你瞬间卡壳,原理答不上来,源码逻辑理不清。这不仅是法律常识题,更是考察你… · 2026/9/23 13:10:18
QQ号如何注销前端避坑指南:5个步骤搞懂底层逻辑 QQ号如何注销前端避坑指南:5个步骤搞懂底层逻辑 面试被问“用户数据如何彻底清除”,你愣在原地答不上来?别慌,这不是玄学,这是工程问题。很多前端同学觉得注销只是点一下按钮,后端删库就完事,结果一深挖就露馅。这篇 避坑指南… · 2026/9/23 13:10:05
多模态虚假新闻检测:文本+图像+传播图融合实战 简介:本资源是一套基于Python实现的虚假新闻多模态检测高分课程设计项目,面向计算机专业本科生及AI初学者,解决社交媒体中图文混合内容的真实性判别问题,适用于期末大作业、课程设计与入门级科研实践。压缩包共39个文件࿰… · 2026/9/23 13:09:59
华为软件精英挑战赛高频面试题源码拆解与避坑指南 华为软件精英挑战赛高频面试题源码拆解与避坑指南 复制来的代码跑不通不知道怎么调,这是参加华为软件精英挑战赛最让人崩溃的时刻。很多人对着屏幕抓耳挠腮,明明逻辑是对的,为什么就是过不了测试用例?其实,这往往不是你的算法逻辑错了,而是对题目隐含约… · 2026/9/23 13:09:58
Raw Data原始数据:从采集存储到治理的完整实践指南 1. 从“Raw data”说起:为什么原始数据才是你手里最值钱的资产干了十多年数据这行,我越来越确信一件事:Raw data(原始数据)才是所有分析、建模、决策的起点,也是最容易被低估的资产。很多人一上来就急着清洗… · 2026/9/23 13:09:58
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29