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

如何使用时序库Darts绘制RNN模型的训练损失曲线?

使用Darts的RNN模型结合TensorBoard绘制训练损失曲线

完全可以用TensorBoard实现这个需求,Darts的RNN类模型(如RNNModel、LSTMModel、GRUModel)底层基于Keras,天生支持Keras的回调函数,包括TensorBoard。下面是具体实现步骤:

步骤1:导入必要模块

from darts import TimeSeries
from darts.models import LSTMModel  # 按需替换成RNNModel/GRUModel
from tensorflow.keras.callbacks import TensorBoard
import datetime

步骤2:初始化TensorBoard回调

指定日志存储路径,用时间戳区分不同训练任务,避免日志混乱:

log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = TensorBoard(log_dir=log_dir, histogram_freq=1)

步骤3:初始化并训练Darts模型

在模型初始化时,把TensorBoard回调传入callbacks参数即可:

# 假设你已经准备好训练序列train_series
model = LSTMModel(
    input_chunk_length=10,  # 对应你Keras代码里的n_input
    output_chunk_length=1,
    n_rnn_layers=1,
    n_epochs=50,
    model_kwargs={"units": 100, "activation": "relu"},
    optimizer_kwargs={"optimizer": "adam"},
    loss_fn="mse",
    callbacks=[tensorboard_callback]  # 传入TensorBoard回调
)

# 启动训练
model.fit(train_series)

步骤4:查看损失曲线

训练开始后,在终端运行以下命令启动TensorBoard:

tensorboard --logdir logs/fit

然后在浏览器打开输出的地址(一般是http://localhost:6006),切换到Scalars面板就能看到每个epoch的训练损失曲线,还能对比不同训练任务的损失变化。

额外:手动提取损失值用Matplotlib绘制

如果你还是习惯像之前Keras那样直接拿损失列表绘图,Darts模型训练后可以通过model.history访问Keras的训练历史,用法和你原来的代码几乎一致:

import matplotlib.pyplot as plt

loss_per_epoch = model.history.history["loss"]
plt.plot(range(len(loss_per_epoch)), loss_per_epoch)
plt.xlabel("Epoch")
plt.ylabel("MSE Loss")
plt.title("Training Loss per Epoch")
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:38:28