Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Xgboost亚马逊Sagemaker网格搜索替代方案_Python 3.x_Amazon Sagemaker - Fatal编程技术网

Python 3.x Xgboost亚马逊Sagemaker网格搜索替代方案

Python 3.x Xgboost亚马逊Sagemaker网格搜索替代方案,python-3.x,amazon-sagemaker,Python 3.x,Amazon Sagemaker,我正在使用Amazon Sagemaker运行xgboost模型,以便打赌最佳超参数组合。我必须使用sagemaker实现,而不是笔记本替代方案来测试它是否比gridsearch运行得更快。 我的问题是如何使这个循环工作。有什么想法吗? 我的理解是,我必须用不同的组合编写大量的工作代码。 我试着以此作为测试: for i in range (1,3): for j in range (13,15): job_name = 'regression' + '-'+str(i)

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

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)
参数是Sagemaker读取基本信息和超参数列表的方式

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

亚马逊SageMaker提供了一种自动为您运行超参数优化(HPO)的调优服务。这项服务现已普遍提供。有关更多信息,请参阅。

我知道这一点。但在此之前,任何“解决办法”?自动模型调整功能现在都普遍适用于所有人。