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:手动补全数据集目录
- 获取CSV格式的航空乘客原始数据
- 按照GluonTS的数据集格式拆分:
- 训练集:保留前n-12个数据点,保存为
train目录下的JSON文件(参考现有train文件夹内的格式) - 测试集:保留最后12个数据点,新建
test目录并保存对应的JSON文件
- 训练集:保留前n-12个数据点,保存为
- 将完整的
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
相关产品推荐
相关产品推荐

