到达时间估计调度模块

本调度器类主要负责完成所有到达时间估计模型的训练和评估过程。

调度模块参数

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

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

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

  • learner:优化器optimizer的类别(字符串),目前支持adamsgdadagradrmspropsparse_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_schedulerlr_scheduler的类别,目前支持MultiStepLRStepLRExponentialLRCosineAnnealingLRLambdaLR以及ReduceLROnPlateau

      • lr_decay_ratioMultiStepLRStepLRExponentialLRReduceLROnPlateau的参数。

      • stepsMultiStepLR的参数。

      • step_sizeStepLR的参数。

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

      • lr_T_maxCosineAnnealingLR的参数。

      • lr_eta_minCosineAnnealingLR的参数。

      • lr_patienceReduceLROnPlateau的参数。

      • lr_thresholdReduceLROnPlateau的参数。

  • clip_grad_norm:是否是用clip_grad_norm_默认Falsetorch.nn.utils.clip_grad_norm_)。

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

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

  • train_loss: 训练时使用的损失函数(字符串)。目前支持maemapemsermsemasked_maemasked_mapemasked_msemasked_rmser2evar

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

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

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

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

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

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