This repository has been archived on 2026-05-02. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
-----/agent_ppo/conf/monitor_builder.py

219 lines
5.8 KiB
Python

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
###########################################################################
# Copyright © 1998 - 2026 Tencent. All Rights Reserved.
###########################################################################
"""
Author: Tencent AI Arena Authors
Monitor panel configuration builder for Robot Vacuum.
清扫大作战监控面板配置构建器。
"""
from kaiwudrl.common.monitor.monitor_config_builder import MonitorConfigBuilder
def build_monitor():
"""
# This function is used to create monitoring panel configurations for custom indicators.
# 该函数用于创建自定义指标的监控面板配置。
"""
monitor = MonitorConfigBuilder()
config_dict = (
monitor.title("清扫大作战")
.add_group(
group_name="算法指标",
group_name_en="algorithm",
)
.add_panel(
name="累积回报",
name_en="reward",
type="line",
)
.add_metric(
metrics_name="reward",
expr="avg(reward{})",
)
.end_panel()
.add_panel(
name="总损失",
name_en="total_loss",
type="line",
)
.add_metric(
metrics_name="total_loss",
expr="avg(total_loss{})",
)
.end_panel()
.add_panel(
name="价值损失",
name_en="value_loss",
type="line",
)
.add_metric(
metrics_name="value_loss",
expr="avg(value_loss{})",
)
.end_panel()
.add_panel(
name="策略损失",
name_en="policy_loss",
type="line",
)
.add_metric(
metrics_name="policy_loss",
expr="avg(policy_loss{})",
)
.end_panel()
.add_panel(
name="熵损失",
name_en="entropy_loss",
type="line",
)
.add_metric(
metrics_name="entropy_loss",
expr="avg(entropy_loss{})",
)
.end_panel()
.add_panel(
name="近似KL",
name_en="approx_kl",
type="line",
)
.add_metric(
metrics_name="approx_kl",
expr="avg(approx_kl{})",
)
.end_panel()
.add_panel(
name="裁剪比例",
name_en="clip_fraction",
type="line",
)
.add_metric(
metrics_name="clip_fraction",
expr="avg(clip_fraction{})",
)
.end_panel()
.end_group()
.add_group(
group_name="行为指标",
group_name_en="behavior",
)
.add_panel(
name="原地撞墙步数",
name_en="stuck",
type="line",
)
.add_metric(
metrics_name="stuck_count",
expr="avg(stuck_count{})",
)
.add_metric(
metrics_name="max_stuck_steps",
expr="avg(max_stuck_steps{})",
)
.end_panel()
.add_panel(
name="回充逃脱次数",
name_en="recharge_escape",
type="line",
)
.add_metric(
metrics_name="recharge_escape_count",
expr="avg(recharge_escape_count{})",
)
.add_metric(
metrics_name="recharge_steps",
expr="avg(recharge_steps{})",
)
.end_panel()
.add_panel(
name="NPC危险接近",
name_en="npc_danger",
type="line",
)
.add_metric(
metrics_name="npc_close_steps",
expr="avg(npc_close_steps{})",
)
.add_metric(
metrics_name="npc_danger_steps",
expr="avg(npc_danger_steps{})",
)
.end_panel()
.add_panel(
name="失败类型",
name_en="failure_type",
type="line",
)
.add_metric(
metrics_name="npc_collision",
expr="avg(npc_collision{})",
)
.add_metric(
metrics_name="battery_fail",
expr="avg(battery_fail{})",
)
.end_panel()
.add_panel(
name="得分与充电",
name_en="score_charge",
type="line",
)
.add_metric(
metrics_name="total_score",
expr="avg(total_score{})",
)
.add_metric(
metrics_name="charge_count",
expr="avg(charge_count{})",
)
.add_metric(
metrics_name="remaining_charge",
expr="avg(remaining_charge{})",
)
.end_panel()
.add_panel(
name="动作掩码健康",
name_en="mask_health",
type="line",
)
.add_metric(
metrics_name="mask_final_avg",
expr="avg(mask_final_avg{})",
)
.add_metric(
metrics_name="mask_one_action_steps",
expr="avg(mask_one_action_steps{})",
)
.add_metric(
metrics_name="mask_two_or_less_action_steps",
expr="avg(mask_two_or_less_action_steps{})",
)
.add_metric(
metrics_name="mask_zero_final_steps",
expr="avg(mask_zero_final_steps{})",
)
.end_panel()
.add_panel(
name="回充动作掩码",
name_en="recharge_mask",
type="line",
)
.add_metric(
metrics_name="mask_recharge_active",
expr="avg(mask_recharge_active{})",
)
.add_metric(
metrics_name="mask_recharge_changed",
expr="avg(mask_recharge_changed{})",
)
.end_panel()
.end_group()
.build()
)
return config_dict