AttributeError: 'ListDataset' object has no attribute 'metadata'
时间: 2023-07-30 16:13:14 浏览: 167
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
5星 · 资源好评率100%
这个错误是因为你使用的是 gluonts 中的 ListDataset,而 ListDataset 对象没有 `metadata` 属性。`metadata` 属性是在特定的数据集中定义的,用于存储有关数据集的元数据信息。
如果你想要使用 `metadata` 属性,你需要使用 gluonts 中提供的特定数据集,例如 `gluonts.dataset.repository.datasets.M4HourlyDataset`。你可以根据你的数据集选择适当的数据集类。
以下是一个示例,展示了如何使用 M4HourlyDataset 数据集和 DeepAR 进行训练和预测:
```python
from gluonts.model.deepar import DeepAREstimator
from gluonts.dataset.repository.datasets import M4HourlyDataset
# 加载 M4Hourly 数据集
training_data = M4HourlyDataset(split="train")
test_data = M4HourlyDataset(split="test", shuffle=False)
# 创建 DeepAR 模型
estimator = DeepAREstimator(prediction_length=24, context_length=48, num_layers=2, num_cells=40)
# 训练模型
predictor = estimator.train(training_data=training_data)
# 预测结果
forecast_it, ts_it = make_evaluation_predictions(
dataset=test_data,
predictor=predictor,
num_samples=100,
)
forecasts = list(forecast_it)
```
请注意,你需要安装 gluonts 库 (`pip install gluonts`) 并导入必要的模块和函数 (`from gluonts.dataset.util import make_evaluation_predictions`)。
确保根据你的数据集选择适当的数据集类,并根据你的需求设置 DeepAR 模型的参数。
如果你有任何问题,请随时提问!
阅读全文