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

GluonTS示例运行报错:airpassengers数据集test目录缺失求助

问题描述

运行GluonTS官方示例代码时,已解决库安装问题,但出现以下错误:

FileNotFoundError: C:\Users\abcde\.mxnet\gluon-ts\datasets\airpassengers\test

确认数据集目录存在,但仅包含train文件夹,重装库无法解决问题。示例代码如下:

import matplotlib.pyplot as plt
from gluonts.dataset.util import to_pandas
from gluonts.dataset.pandas import PandasDataset
from gluonts.dataset.repository.datasets import get_dataset
from gluonts.mx import DeepAREstimator, Trainer

dataset = get_dataset("airpassengers")

deepar = DeepAREstimator(prediction_length=12, freq="M", trainer=Trainer(epochs=5))
model = deepar.train(dataset.train)

# Make predictions
true_values = to_pandas(list(dataset.test)[0])
true_values.to_timestamp().plot(color="k")

prediction_input = PandasDataset([true_values[:-36], true_values[:-24], true_values[:-12]])
predictions = model.predict(prediction_input)

for color, prediction in zip(["green", "blue", "purple"], predictions):
    prediction.plot(color=f"tab:{color}")

plt.legend(["True values"], loc="upper left", fontsize="xx-large")
解决方案

方法1:从训练集拆分生成测试数据

airpassengers是单时间序列数据集,直接从现有训练集中拆分出测试部分,替代原代码中dataset.test的依赖:

# 替换原代码中获取true_values的片段
train_data = to_pandas(list(dataset.train)[0])
# 取最后12个数据点作为测试真实值(与prediction_length一致)
true_values = train_data[-12:]
# 基于训练集生成预测输入
prediction_input = PandasDataset([train_data[:-36], train_data[:-24], train_data[:-12]])

修改后即可跳过缺失的test目录,完成预测和绘图流程。

方法2:手动补全数据集目录

  1. 获取CSV格式的航空乘客原始数据
  2. 按照GluonTS的数据集格式拆分:
    • 训练集:保留前n-12个数据点,保存为train目录下的JSON文件(参考现有train文件夹内的格式)
    • 测试集:保留最后12个数据点,新建test目录并保存对应的JSON文件
  3. 将完整的airpassengers目录替换到C:\Users\abcde\.mxnet\gluon-ts\datasets\路径下

方法3:调用get_dataset时跳过测试集加载

调用get_dataset时添加with_test=False参数,避免加载测试集:

dataset = get_dataset("airpassengers", with_test=False)

后续同样参考方法1,从训练集中拆分测试数据完成后续步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:03:17