到达时间估计调度模块¶
本调度器类主要负责完成所有到达时间估计模型的训练和评估过程。
调度模块参数¶
下面主要介绍此调度器类所能够接收的参数:
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_)。max_grad_norm: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。