当前位置: 首页 > 知识库问答 >
问题:

内置sagemaker算法的增量学习

通建安
2023-03-14

我正在训练DeepAR AWS SageMaker的内置算法。使用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,但它不起作用,显然(根据链接),只有两个内置模型支持增量学习。

是否有人找到了一个解决方法,以便他们能够以预定的学习速率训练内置算法?

共有1个答案

高嘉树
2023-03-14

不幸的是,SageMaker内置的DeepAR模型既不支持学习速率调度,也不支持增量学习。如果您想在DeepAR体系结构上实施学习率平台计划,我建议您考虑:

  • 使用开源的DeepAR实现(代码,演示)
  • 或者使用亚马逊预测服务的DeepAR算法,该算法具有学习率调度能力。
 类似资料:
  • 简介 Apache ShardingSphere 通过 SPI 方式允许开发者扩展算法; 与此同时,Apache ShardingSphere 也提供了大量的内置算法以便于开发者使用。 使用方式 内置算法均通过 type 和 props 进行配置,其中 type 由算法定义在 SPI 中,props 用于传递算法的个性化参数配置。 无论使用哪种配置方式,均是将配置完毕的算法命名,并传递至相应的规则

  • 我正在尝试为Spark 2.x中的机器学习(分类)算法设置初始权重或参数。不幸的是,除了多层感知器算法,没有其他算法提供设置初始权重/参数值的方法。 我正在尝试使用火花解决增量学习。在这里,我需要加载旧模型,使用系统中的新数据重新训练旧模型。我该怎么做? 我如何为其他算法执行此操作,例如: < li >决策树 < li >随机森林 <李> SVM < li >逻辑回归 我需要试验多种算法,然后选择

  • 我知道后缀/前缀递增/递减运算符是做什么的。在javascript中,这似乎没有什么不同。 虽然我可以很容易地猜出这一行的结果: 当运算符出现在单独的表达式中时。 由于这些运算符出现在同一个表达式中,因此变得有点复杂: 我的问题是,Javascript(在本例中为V8,我在Chrome中测试了它们)如何以不同的方式计算第二个和第三个示例中的加法表达式? 为什么的评估结果与不同。后缀不是应该在表达式

  • 下面是我简单的Jmeter测试计划。 用户参数如下所示: 我只是调用一个endpoint,读取响应体,并根据找到的ID,在Regex提取器的帮助下调用另一个endpoint。ForEach循环帮助确保对于找到的所有ID,以ID作为路径中的参数调用相同的endpoint。 null 我这里的一个小问题是,用户参数变量从来没有得到更新,并且在运行结束时总是等于0。在这种情况下我做错了什么?以前有人面临

  • 增量运算符++将1添加到其操作数,减量运算符 - 从其操作数中减去1。 因此 - x = x+1; is the same as x++; 同样 - x = x-1; is the same as x--; 递增和递减运算符都可以在操作数之前(前缀)或后跟(后缀)。 例如 - x = x+1; can be written as ++x; // prefix form 或者 - x++; /

  • 我已经实现了Ford Fulkerson算法,现在正在尝试它的一个变体。 假设解导出后,其中一条边的容量增大或减小。我们需要找到一个算法,以获得新的最大流量使用当前的解决方案,而不是从一开始。 我的建议是,在这个例子中,如果我们假设1-3个边的容量从12减少到8,那么我们需要做一个从1到开始节点的BFS,并且在每个边上减少4的流量,做一个从3到5的BFS,并且减少那里的流量。但我不确定这是否正确。