尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

DRL模型训练:原始奖励函数记录以及绘制

DRL模型训练:原始奖励函数记录以及绘制
📅 发布时间:2026/6/20 2:20:58

一些参考图片:

image

image

1. 使用sb3库,

调用callback,会记录每个episode结束时的reward;

使用tensorboard记录的rollout/ep_rew_mean,会自动每4个ep平均,并进行平滑,得到的不是原始数据。

from stable_baselines3.common.callbacks import BaseCallback
import os
import numpy as np
class RewardLoggingCallback(BaseCallback):def __init__(self, save_path, verbose=0):super().__init__(verbose)self.save_path = save_pathself.episode_rewards = []def _on_step(self) -> bool:# SB3 会在 episode 结束时把 episode info 放在 infos 中if len(self.locals.get("infos", [])) > 0:for info in self.locals["infos"]:if "episode" in info.keys():self.episode_rewards.append(info["episode"]["r"])return Truedef _on_training_end(self) -> None:os.makedirs(os.path.dirname(self.save_path), exist_ok=True)np.save(self.save_path, np.array(self.episode_rewards))if self.verbose > 0:print(f"Saved episodic rewards to {self.save_path}")

2.调用seaborn库

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 假设你通过 callback 保存的数据是多个实验 run 的结果
# 例如保存成: run1_rewards.npy, run2_rewards.npy, ...
files = [
'run1_rewards.npy',
]# 定义滑动平均函数
def moving_average(x, window=50):return np.convolve(x, np.ones(window)/window, mode="valid")# 收集所有数据
data = []
for run_id, f in enumerate(files):rewards = np.load(f)smoothed = moving_average(rewards, window=20)for i, r in enumerate(smoothed):data.append({"timestep": i, "reward": r, "run": run_id})df = pd.DataFrame(data)# seaborn 绘制:均值曲线 + 阴影表示方差区间
plt.figure(figsize=(8, 5))
sns.lineplot(data=df,x="timestep",y="reward",hue=None,estimator="mean",errorbar="sd"  # 可选 "ci" 表示置信区间,"sd" 表示标准差
)plt.title("Episode Reward (Smoothed, Multiple Runs)")
plt.xlabel("Episode")
plt.ylabel("Reward")
plt.tight_layout()
plt.show()

参考

https://zhuanlan.zhihu.com/p/635706668
https://www.deeprlhub.com/d/114
https://zhuanlan.zhihu.com/p/75477750

相关新闻

  • 【Boolean】布尔值:逻辑判断的基础
  • Modbus RTU TCP 拓扑
  • 借助Aspose.Email,使用 Python 将 EML 转换为 MHTML

最新新闻

  • ComfyUI TTP Toolset:3步掌握8K超分辨率图像分块处理技术,普通电脑也能轻松实现AI图像增强
  • LPC3130/3131 ARM9微控制器:多层AHB总线与引脚复用的嵌入式设计精要
  • 2026衡水2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 3种智能编排策略重构AI工作流创作效率
  • PPO算法在大语言模型RLHF训练中的工程实践与调参指南
  • 武汉南华光电职业技术学校2026年最新招生简章 - 武汉中职最新信息发布

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号