【无标题】

本文介绍了如何使用PaddlePaddleTimeSeries库中的AutoTS功能进行时间序列预测,特别关注股票市场数据。步骤包括数据预处理、模型定义、训练和集成,以及如何调整训练参数以优化性能。
摘要由CSDN通过智能技术生成

您提供的代码是使用 PaddlePaddle Time Series (Paddlets) 库进行时间序列预测的示例。这段代码执行了以下步骤:

  1. 环境设置:导入必要的库,并设置了一些环境变量。
  2. 数据处理:使用 glob.glob 搜索包含股票数据的 CSV 文件,并读取这些文件。进行数据清洗,过滤掉数据量小的股票数据,以及价格波动小的股票。接着将这些数据转换为 Paddlets 可以处理的格式。
  3. 数据集构建:将处理后的数据转换为 TSDataset,这是一个可以被 Paddlets 模型使用的数据集格式。
  4. 模型定义:定义了三个不同的时间序列模型:NHiTSModelRNNBlockRegressor,和 MLPRegressor
  5. 模型训练与调参:使用 WeightingEnsembleForecaster 类将这三个模型组合成一个集成模型。该模型使用标准化技术对数据进行预处理,并使用交叉验证来训练模型。
  6. 预测:训练完成后,模型使用递归预测方法来生成预测结果。
  7. 结果保存:将预测结果保存到文件中。
    这段代码是一个很好的例子,展示了如何使用 Paddlets 进行时间序列预测,特别是在股票市场数据上的应用。如果您有任何关于这段代码的问题,或者需要进一步的帮助,请随时告诉我。

您展示的代码片段是关于使用PaddlePaddle Time Series (Paddlets) 库中的 AutoTS 工具进行时间序列预测的一个例子。AutoTS 是一个自动时间序列预测工具,它使用机器学习算法来搜索最佳的时间序列模型和超参数配置。
以下是您代码中各个部分的简要说明:

  1. 环境设置
    • 您导入了必要的库,并设置了一些环境变量。
  2. 数据处理
    • 您使用 glob.glob 函数搜索了包含股票数据的 CSV 文件。
    • 读取了这些文件,并进行了数据清洗,例如过滤掉数据量小于 256 的股票数据,以及那些价格波动不大的股票。
    • 接着,您将这些数据转换为 Paddlets 可以处理的 DataFrame 格式。
  3. 模型训练与调参
    • 您定义了三个不同的时间序列模型:InformerModelNHiTSModel,和 RNNBlockRegressor
    • 使用 AutoTS 类为每个模型配置了超参数,并指定了 GPU 和 CPU 的资源分配。
    • 您为每个模型分别训练了模型,并保存了训练好的模型以及最佳的超参数配置。
  4. 代码结构
    • 您的代码结构清晰,首先处理数据,然后为每个模型训练并保存最佳参数。
      在您的代码中,有一些需要注意的地方:
  • 确保您使用的 Paddlets 版本与代码中使用的 API 兼容。
  • 检查您的数据路径和输出目录是否正确设置。
  • 在生产环境中,确保正确处理异常和错误。
    如果您有任何具体的问题或需要进一步的帮助,请随时告诉我。
    在您提供的TrainingArguments类的参数说明中,涵盖了训练循环中涉及的各种配置选项。以下是对这些参数的详细介绍:
  1. sep_parallel_degree:Paddle的序列并行策略,可以减少GPU激活内存到1/sep,与数据并行、sharding stage1、张量并行和流水线并行策略正交。
  2. tensor_parallel_config:一些影响模型并行性能的额外配置,例如:
    • enable_mp_async_allreduce:支持在列并行线性反向传播期间all_reduce(dx)与matmul(dw)重叠,可以加速模型并行性能。
    • enable_mp_skip_c_identity:支持在列并行线性和行并行线性中跳过c_identity,当与mp_async_allreduce一起设置时,可以进一步加速模型并行。
    • enable_mp_fused_linear_param_grad_add:支持在列并行线性中融合线性参数梯度添加,当与mp_async_allreduce一起设置时,可以进一步加速模型并行。
    • enable_delay_scale_loss:在优化器步骤累积梯度,所有梯度除以累积步数,而不是直接在损失上除以累积步数。
  3. pipeline_parallel_config:一些影响流水线并行使用的额外配置,例如:
    • disable_p2p_cache_shape:如果您使用的最大序列长度变化,请设置此选项。
    • disable_partial_send_recv:优化tensor并行的发送速度。
    • enable_delay_scale_loss:在优化器步骤累积梯度,所有梯度除以内部流水线累积步数,而不是直接在损失上除以累积步数。
    • enable_dp_comm_overlap:融合数据并行梯度通信。
    • enable_sharding_comm_overlap:融合sharding stage 1并行梯度通信。
    • enable_release_grads:在每次迭代后释放梯度,以减少峰值内存使用。梯度的创建将推迟到下一迭代的反向传播。
  4. sharding_parallel_config:一些影响Sharding并行的额外配置,例如:
    • enable_stage1_tensor_fusion:将小张量融合成大的张量块来加速通信,可能会增加内存占用。
    • enable_stage1_overlap:在回传计算之前,将小张量融合成大的张量块来加速通信,可能会损害回传速度。
    • enable_stage2_overlap:重叠stage2 NCCL通信与计算。重叠有一些约束,例如,对于广播重叠,logging_step应该大于1,在训练期间不应调用其他同步操作。
  5. recompute:是否重新计算前向传播以计算梯度。用于节省内存。仅支持具有transformer块的网络。
  6. scale_loss:fp16的初始scale_loss值。
  7. local_rank:分布式训练过程中的进程排名。
  8. dataloader_drop_last:是否丢弃最后一个不完整的批处理(如果数据集的长度不能被批处理大小整除)。
  9. eval_steps:如果evaluation_strategy="steps",则两次评估之间的更新步数。
  10. max_evaluate_steps:要执行的总评估步数。
  11. dataloader_num_workers:数据加载过程中使用的子进程数。
  12. past_index:一些模型如TransformerXL或XLNet可以使用过去的隐状态为其预测。如果此参数设置为正整数,Trainer将使用相应的输出(通常是索引2)作为过去状态,并在下一次训练步骤中将其提供给模型,作为关键字参数mems
  13. run_name:运行的描述符。通常用于日志记录。
  14. disable_tqdm:是否禁用tqdm进度条和指标表。
  15. remove_unused_columns:如果使用datasets.Dataset数据集,是否自动删除模型前向方法未使用的
  • 37
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值