在 SageMaker 上构建 XGBoost

Building XGBoost on SageMaker

我正在尝试 运行 AWS Sagemaker 上的 XGBoost 并尝试为 XGBoost 调用容器。


containers = {'us-west-2': '433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest',
              'us-east-1': '811284229777.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest',
              'us-east-2': '825641698319.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest',
              'eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest'}

hyperparameters = {
        "max_depth":"5",
        "eta":"0.2",
        "gamma":"4",
        "min_child_weight":"6",
        "subsample":"0.7",
        "objective":"binary:logistic",
        "num_round":50
        }

estimator = sagemaker.estimator.Estimator(image_name=containers['us-east-1'], 
                                          hyperparameters=hyperparameters,
                                          role=sagemaker.get_execution_role(),
                                          train_instance_count=1, 
                                          train_instance_type='ml.m5.2xlarge', 
                                          train_volume_size=5, # 5 GB 
                                          output_path=output_path,
                                          train_use_spot_instances=True,
                                          train_max_run=300,
                                          train_max_wait=600)


但是,运行以下会引发错误:

estimator.fit({'train': s3_input_train,'validation': s3_input_test})
ClientError: An error occurred (ValidationException) when calling the CreateTrainingJob operation: Invalid DNS suffix 'amazonaws.com' for region 'us-east-1' in training image. Please provide the valid <region>.<dns-suffix>: 'ap-south-1.amazonaws.com'

有人可以帮助解决这个错误吗?谢谢。

笔记本实例是在 ap-south-1 中创建的,S3 存储桶是在 us-east-1 中创建的。从与 S3 存储桶相同的区域创建另一个笔记本实例解决了该问题。