我正在训练AWS SageMaker的内置DeepAR算法。使用sagemaker SDK,我可以使用特定的超参数来训练模型:
estimator = sagemaker.estimator.Estimator( sagemaker_session=sagemaker_session, image_name=image_name, role=role, train_instance_count=1, train_instance_type='ml.c4.2xlarge', base_job_name='wfp-deepar', output_path=join(s3_path, 'output'))estimator.set_hyperparameters(**{ 'time_freq': 'M', 'epochs': '50', 'mini_batch_size': '96', 'learning_rate': '1E-3', 'context_length': '12', 'dropout_rate': 0, 'prediction_length': '12'})estimator.fit(inputs=data_channels, wait=True, job_name='wfp-deepar-job-level-5')
我想再次训练得到的模型,并使用更小的学习率。我按照此处描述的增量训练方法进行了尝试:https://docs.aws.amazon.com/en_pv/sagemaker/latest/dg/incremental-training.html,但显然它不起作用,根据链接的说法,只有两个内置模型支持增量学习。
有没有人找到解决方案,以便他们可以使用计划的学习率来训练内置算法?
回答:
遗憾的是,SageMaker的内置DeepAR模型不支持学习率调度和增量学习。如果您想在DeepAR架构上实现学习率平台调度,我建议考虑以下几点:
- 使用开源的DeepAR实现(代码,演示)
- 或使用Amazon Forecast服务的DeepAR+算法,该算法具有学习率调度功能。