You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python SDK在Weights & Biases中程序化创建Scalar Chart?

解决方法

1. 多次记录指标自动生成折线图

你之前只调用了一次wandb.log({"loss": 0.5}),所以只有单个数据点,自然是单点图表。要得到连续的标量折线图,只要在循环里多次调用wandb.log,每次传入对应指标值和递增的step参数就行:

import wandb

wandb.init(project="你的项目名")

# 模拟训练循环
for step in range(10):
    loss = 0.5 - step * 0.05  # 模拟loss逐步下降
    wandb.log({"loss": loss}, step=step)

这样W&B会自动把所有loss数据按step串联成折线图,不用手动创建面板。

2. 程序化创建自定义Scalar Chart面板

如果想在脚本运行时就自动生成UI里的Scalar Chart面板(不用手动点「添加面板」),可以用W&B的面板配置API实现:

import wandb

wandb.init(project="你的项目名")

# 定义Scalar Chart的配置
scalar_panel = {
    "panel_type": "line",
    "title": "训练Loss趋势",
    "x_axis": "step",
    "y_axis": "loss",
    # 查询当前run的step和loss数据
    "query": "select step, loss from runs where run_id = '${run_id}'",
    "settings": {
        "show_legend": True,
        "interactive": True
    }
}

# 把面板配置写入wandb系统字段
wandb.log({"_wandb": {"dashboard": {"panels": [scalar_panel]}}})

# 正常记录数据
wandb.log({"loss": 0.5}, step=0)
wandb.log({"loss": 0.4}, step=1)

运行后,你的W&B run页面会自动出现这个预设好的Scalar Chart面板,直接展示loss随step变化的折线图。

3. 用wandb.plot生成独立标量图表

如果需要生成独立的可视化图表,可以用wandb.plot.line基于表格数据创建:

import wandb

wandb.init(project="你的项目名")

# 准备训练数据(step和对应的loss)
data = [
    [0, 0.5],
    [1, 0.4],
    [2, 0.3],
    [3, 0.2]
]
table = wandb.Table(data=data, columns=["step", "loss"])

# 生成折线图
loss_chart = wandb.plot.line(table, x="step", y="loss", title="训练Loss变化")

# 把图表log到wandb
wandb.log({"loss_trend": loss_chart})

生成的图表会作为独立项出现在W&B UI的「Media」或「Charts」板块里。

内容的提问来源于stack exchange,提问作者Maxim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:43:21