首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xgboost Amazon Sagemaker网格搜索替代方案

Xgboost Amazon Sagemaker网格搜索替代方案
EN

Stack Overflow用户
提问于 2018-05-25 20:03:06
回答 1查看 571关注 0票数 2

我正在使用Amazon Sagemaker运行一个xgboost模型,以便押注最好的超参数组合。我必须使用sagemaker实现,而不是notebook替代方案来测试它是否比gridsearch运行得更快。我的问题是如何让它在循环中工作。有什么想法吗?我的理解是,我必须用不同的组合来编写大量的工作。我试着这样做作为测试:

代码语言:javascript
复制
for i in range (1,3):
    for j in range (13,15):
        job_name = 'regression' + '-'+str(i) +"-"+str(j)+"-" +strftime("%Y-%m-%d-%H-%M-%S", gmtime())

        job_name_params = copy.deepcopy(parameters_xgboost)
        job_name_params['TrainingJobName'] = job_name
        job_name_params['OutputDataConfig']['S3OutputPath']= "....."
        job_name_params['HyperParameters']['objective'] = "reg:linear"
        job_name_params['HyperParameters']['silent'] = "0"
        job_name_params['HyperParameters']['max_depth'] = str(i)
        job_name_params['HyperParameters']['min_child_weight'] = str(j)
        job_name_params['HyperParameters']['eta'] = "0.01"
        job_name_params['HyperParameters']['num_round'] = "1000"
        job_name_params['HyperParameters']['subsample'] = "0.5"
        job_name_params['HyperParameters']['colsample_bytree'] = "0.5"

        sm = boto3.Session().client('.....')


        sm.create_training_job(**job_name_params)
        sm.get_waiter('training_job_completed_or_stopped').wait(TrainingJobName=job_name)
        status = sm.describe_training_job(TrainingJobName=job_name)['TrainingJobStatus']
        print("Training job ended with status: " + status)

parameters_xgboost是Sagemaker读取基本信息和超参数列表的方式。

好消息是它是有效的。糟糕的是,这样一次只能训练一个模型。我希望所有这些组合都能在同一时间运行。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2018-05-29 01:03:25

亚马逊SageMaker正在为您提供自动运行超参数优化(HPO)的调整服务。该服务现在已普遍可用。有关详细信息,请参阅the documentation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50528814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档