【发布时间】: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})
【问题讨论】:
-
是的,按照上面 Gaurav Bansal 的建议,您可以在 HyperParameterTuner 对象上调用 deploy 方法。更多信息在这里:sagemaker.readthedocs.io/en/stable/api/training/…
标签: amazon-web-services amazon-sagemaker hyperparameters