【问题标题】:How to create model from best hyperparameter tuning job in Sagemaker?如何从 Sagemaker 中的最佳超参数调整作业创建模型?
【发布时间】:2020-06-19 09:45:23
【问题描述】:

我正在使用 AWS SageMaker 运行超参数调整以优化 XGBoost 模型。我可以使用下面的示例代码来做到这一点。我的问题是:我怎样才能进行最好的超参数调整工作并通过代码创建模型?我知道在 AWS 控制台中我可以看到最好的工作并单击“创建模型”,但我希望能够使用 Python 代码来执行此操作。

sess = sagemaker.Session()
s3_input_train = sagemaker.s3_input(s3_data='s3://{}/{}/train'.format(bucket, prefix), content_type='csv')
s3_input_validation = sagemaker.s3_input(s3_data='s3://{}/{}/valid/'.format(bucket, prefix), content_type='csv')
xgb_cont = get_image_uri(region, 'xgboost', repo_version='0.90-1')
xgb = sagemaker.estimator.Estimator(xgb_cont, role, train_instance_count=1, train_instance_type='ml.m4.4xlarge',
                                    output_path='s3://{}/{}/output'.format(bucket, prefix), sagemaker_session=sess)
xgb.set_hyperparameters(eval_metric='rmse', objective='reg:squarederror', num_round=100)
hyperparameter_ranges = {'eta': ContinuousParameter(0, 1), 'min_child_weight': ContinuousParameter(1, 10),
                        'alpha': ContinuousParameter(0, 2), 'max_depth': IntegerParameter(1, 10)}
tuner = HyperparameterTuner(xgb, 
                            objective_metric_name='validation:rmse', 
                            objective_type='Minimize',
                            hyperparameter_ranges=hyperparameter_ranges, 
                            max_jobs=20, max_parallel_jobs=10)
tuner.fit({'train': s3_input_train, 'validation': s3_input_validation})

【问题讨论】:

标签: amazon-web-services amazon-sagemaker hyperparameters


【解决方案1】:

显然我可以使用以下代码部署最佳模型:

tuner.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')

【讨论】:

  • 是的。请注意,如果您在调优作业完成之前调用该 API,它将部署迄今为止最好的调优作业。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
  • 1970-01-01
  • 2021-04-05
  • 2019-12-05
  • 1970-01-01
  • 2021-02-11
  • 2021-10-12
相关资源
最近更新 更多