常见问题解答#

常见问题及解答。其他寻求帮助的地方:

创建数据集#

  • 如何为新样本创建数据集?

    使用训练数据集的TimeSeriesDataSet方法来创建可以运行推理的数据集。

  • 编码器和解码器/预测长度应该多长?

    选择一个合理的长度,但编码器长度不要超过500,解码器长度不要超过200。考虑到更长的长度会增加模型训练所需的时间。

    解码器和编码器长度的比例取决于所使用的算法。 查看文档以获取线索。

  • 创建数据集需要很长时间。为什么会这样?

    如果你在数据集中设置了allow_missing_timesteps=True,创建索引可能会花费更多时间,因为必须识别时间序列中的所有缺失值。算法可能可以加速,但目前,不允许缺失值并自己填充可能会更快。

  • 缺失值如何处理?

    1. 时间点之间的缺失值可以通过前向填充或常数填充策略来填补

    2. 由NaN表示的缺失值是一个问题,应该预先填充,例如使用中位数和另一个缺失指示分类变量。

    3. 未来的缺失值(超出范围)不会被填充,也不会被预测。您需要提供未来的值。如果这些值属于未知的未来值,它们将被忽略。

训练模型#

  • 我的训练似乎卡住了 - 尽管我的CPU/GPU正在以100%的速度工作,但似乎没有任何进展。 如何解决这个问题?

    可能你的模型太大了(使用model.size()检查参数数量),或者数据集编码器和解码器的长度不切实际地大。请参阅编码器和解码器/预测长度应该多长?

  • 为什么学习率查找器没有完成?

    首先,确保训练器没有设置关键字 fast_dev_run=Truelimit_train_batches=...。其次,在您的训练数据集中使用目标归一化器。 第三,将 lr_find 方法的 early_stop_threshold 参数 增加到一个较大的数值。

  • 为什么我在运行学习率查找器时会收到很多matplotlib警告?

    这是因为你一直在创建用于记录的图表,但没有记录器。 在你的模型中设置log_interval=-1以避免这种行为。

  • 如何选择超参数?

    请查阅模型文档以了解哪些参数是重要的以及哪些范围是合理的。使用学习率查找器选择学习率。要调整超参数,optuna包是一个很好的起点。

解释模型#

  • PyTorch Forecasting 中内置了什么解释?

    查阅您使用的模型的模型文档以获取特定模型的解释。 此外,所有模型都继承自BaseModel的一些基本方法。