【笔记】stable_baseline 记录输出说明

2024-01-23 07:44

本文主要是介绍【笔记】stable_baseline 记录输出说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

训练 PPO 代理时的记录器输出示例:

-----------------------------------------
| eval/                   |             |
|    mean_ep_length       | 200         |
|    mean_reward          | -157        |
| rollout/                |             |
|    ep_len_mean          | 200         |
|    ep_rew_mean          | -227        |
| time/                   |             |
|    fps                  | 972         |
|    iterations           | 19          |
|    time_elapsed         | 80          |
|    total_timesteps      | 77824       |
| train/                  |             |
|    approx_kl            | 0.037781604 |
|    clip_fraction        | 0.243       |
|    clip_range           | 0.2         |
|    entropy_loss         | -1.06       |
|    explained_variance   | 0.999       |
|    learning_rate        | 0.001       |
|    loss                 | 0.245       |
|    n_updates            | 180         |
|    policy_gradient_loss | -0.00398    |
|    std                  | 0.205       |
|    value_loss           | 0.226       |
-----------------------------------------

评估/eval

所有值均由 .eval/EvalCallback

mean_ep_length:平均剧集长度

mean_reward:平均每集奖励(评估期间)

success_rate:评估期间的平均成功率(1.0 表示 100% 成功),环境信息字典必须包含用于计算该值的键is_success

推出/rollout

ep_len_mean:平均剧集长度(剧集的平均值,默认为 100)stats_window_size

ep_rew_mean:平均剧集训练奖励(剧集的平均值,默认为 100),需要包装器来计算该值(由 make_vec_env 自动添加)。stats_window_sizeMonitor

exploration_rate:使用 DQN 时探索率的当前值,它对应于随机采取的行动的分数(“epsilon-greedy”探索的 epsilon)

success_rate:训练期间的平均成功率(剧集的平均值,默认为 100),您必须向包装器传递一个额外的参数以记录该值 () 并在剧集的最后一步提供stats_window_sizeMonitorinfo_keywords=(“is_success”,)info[“is_success”]=True/False

时间/time

episodes:总集数

fps:每秒帧数(包括梯度更新所花费的时间)

iterations:迭代次数(数据收集 + A2C/PPO 策略更新)

time_elapsed:自训练开始以来的时间(以秒为单位)

total_timesteps:总时间步长数(环境中的步数)

训练/train

actor_loss:偏离策略算法的执行组件损失的当前值

approx_kl:新旧策略之间的近似平均KL差异(对于PPO),它是对更新中发生多少变化的估计

clip_fraction:PPO 被剪裁(高于阈值)的替代损失的平均分数。clip_range

clip_range:PPO替代损失的剪裁因子的当前值

critic_loss:偏离策略算法的批评函数损失的当前值,通常是值函数输出与 TD(0) 之间的误差,时间差估计

ent_coef:熵系数的当前值(使用SAC时)

ent_coef_loss:熵系数损失的当前值(使用SAC时)

entropy_loss:熵损失的平均值(平均策略熵的负值)

explained_variance:由值函数解释的回报方差的分数,参见 https://scikit-learn.org/stable/modules/model_evaluation.html#explained-variance-score(ev=0 =>还不如预测零,ev=1 =>完美预测,ev<0 =>比预测零更差)

learning_rate:当前学习率值

loss:当前总损失值

n_updates:到目前为止应用的梯度更新数

policy_gradient_loss:策略梯度损失的当前值(其值没有多大意义)

value_loss:策略算法的值函数损失的当前值,通常为值函数输出与蒙特卡洛估计(或 TD(lambda) 估计)之间的误差

std:使用广义状态相关探索 (generalized State-Dependent Exploration,gSDE) 时噪声的当前标准偏差

参考资料:https://stable-baselines3.readthedocs.io/en/master/common/logger.html

这篇关于【笔记】stable_baseline 记录输出说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/635700

相关文章

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

Spring Boot Actuator使用说明

《SpringBootActuator使用说明》SpringBootActuator是一个用于监控和管理SpringBoot应用程序的强大工具,通过引入依赖并配置,可以启用默认的监控接口,... 目录项目里引入下面这个依赖使用场景总结说明:本文介绍Spring Boot Actuator的使用,关于Spri

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC