交通状态预测调度模块

本调度器类主要负责完成所有交通状态预测(交通速度、流量、需求量)模型的训练和评估过程。

调度模块参数

下面主要介绍此调度器类所能够接收的参数:

  • max_epoch:训练总轮数,初值由模型设定。

  • epoch:起始训练的轮数,如果大于0,会先从./libcity/cache/model_cache加载该epoch的模型(缓存文件名为[模型名_数据集名_epoch+轮数.tar]),然后继续完成接下来的训练或评估。

  • learner:优化器optimizer的类别(字符串),目前支持adam、sgd、adagrad、rmsprop、sparse_adam,默认’adam’。

    • learning_rate:optimizer的参数,学习率,默认0.01。

    • weight_decay:optimizer的参数,默认0.0。

    • lr_epsilon:optimizer的参数,默认1e-8。

    • lr_beta1: optimizer的参数,默认0.9。

    • lr_beta2: optimizer的参数,默认0.999。

    • lr_alpha: optimizer的参数,默认0.99。

    • lr_momentum: optimizer的参数,默认0。

  • lr_decay:是否是用lr_scheduler,默认False。

    • lr_scheduler:lr_scheduler的类别,目前支持MultiStepLR、StepLR、ExponentialLR、CosineAnnealingLR、LambdaLR以及ReduceLROnPlateau。

      • lr_decay_ratio:MultiStepLR、StepLR、ExponentialLR、ReduceLROnPlateau的参数。

      • steps:MultiStepLR的参数。

      • step_size:StepLR的参数。

      • lr_lambda:LambdaLR的参数【此参数需要指定为一个函数,目前基于json的配置文件不支持】。

      • lr_T_max:CosineAnnealingLR的参数。

      • lr_eta_min:CosineAnnealingLR的参数。

      • lr_patience: ReduceLROnPlateau的参数。

      • lr_threshold:ReduceLROnPlateau的参数。

  • clip_grad_norm:是否是用clip_grad_norm_,默认False(torch.nn.utils.clip_grad_norm_)。

  • use_early_stop:是否是用早停机制,默认False。

    • patience:早停机制的轮数,每当验证集误差>最小验证误差,则累计1,反之则清0从头累计,累计到patience次就结束训练。

  • train_loss: 训练时使用的损失函数(字符串)。目前支持mae、mape、mse、rmse、masked_mae、masked_mape、masked_mse、masked_rmse、r2、evar。

  • log_level:log的级别设置,默认为INFO,超过INFO级别的log都将被输出,具体参考第三方库logging。

    • log_every:训练过程中用log记录过程的频次。

  • saved_model:是否保存训练过程中的model,默认True。

  • gpu:是否是用gpu训练,默认True。

    • gpu_id:指定使用的gpu的id,默认0。

    • device*:不能从外部指定,由参数gpu和gpu_id共同确定,在模型的代码中,使用config['device']即可取得,不需要使用参数gpu和gpu_id。