

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 0.90 XGBoost 版本升级到版本 1.5
<a name="xgboost-version-0.90"></a>

如果您使用的是 SageMaker Python 开发工具包，要将现有的 XGBoost 0.90 任务升级到 1.5 版，则必须安装软件开发工具包的 2.x 版本，并将 XGBoost`version`和`framework_version`参数更改为 1.5-1。如果您使用的是 Boto3，则需要更新 Docker 映像以及一些超参数和学习目标。

**Topics**
+ [将 SageMaker AI Python SDK 版本 1.x 升级到 2.x 版](#upgrade-xgboost-version-0.90-sagemaker-python-sdk)
+ [将映像标签更改为 1.5-1](#upgrade-xgboost-version-0.90-change-image-tag)
+ [更改 Boto3 的 Docker 映像](#upgrade-xgboost-version-0.90-boto3)
+ [更新超参数和学习目标](#upgrade-xgboost-version-0.90-hyperparameters)

## 将 SageMaker AI Python SDK 版本 1.x 升级到 2.x 版
<a name="upgrade-xgboost-version-0.90-sagemaker-python-sdk"></a>

如果你仍在使用 SageMaker Python SDK 的 1.x 版本，则必须升级 Pyth SageMaker on SDK 的 2.x 版本。有关最新版本的 SageMaker Python 开发工具包的信息，请参阅[使用 Pyth SageMaker on 开发工具包的 2.x 版本](https://sagemaker.readthedocs.io/en/stable/v2.html)。要安装最新版本，请运行：

```
python -m pip install --upgrade sagemaker
```

## 将映像标签更改为 1.5-1
<a name="upgrade-xgboost-version-0.90-change-image-tag"></a>

如果您使用的是 SageMaker Python SDK 并使用 XGBoost 内置算法，请更改中的版本参数。`image_uris.retrive`

```
from sagemaker import image_uris
image_uris.retrieve(framework="xgboost", region="us-west-2", version="1.5-1")

estimator = sagemaker.estimator.Estimator(image_uri=xgboost_container, 
                                          hyperparameters=hyperparameters,
                                          role=sagemaker.get_execution_role(),
                                          instance_count=1, 
                                          instance_type='ml.m5.2xlarge', 
                                          volume_size=5, # 5 GB 
                                          output_path=output_path)
```

如果您使用 SageMaker Python SDK 并 XGBoost 用作运行自定义训练脚本的框架，请更改 XGBoost API 中的`framework_version`参数。

```
estimator = XGBoost(entry_point = "your_xgboost_abalone_script.py", 
                    framework_version='1.5-1',
                    hyperparameters=hyperparameters,
                    role=sagemaker.get_execution_role(),
                    instance_count=1,
                    instance_type='ml.m5.2xlarge',
                    output_path=output_path)
```

`sagemaker.session.s3_input`在 SageMaker Python 软件开发工具包中，1.x 版本已重命名为。`sagemaker.inputs.TrainingInput`您必须如以下示例使用 `sagemaker.inputs.TrainingInput`。

```
content_type = "libsvm"
train_input = TrainingInput("s3://{}/{}/{}/".format(bucket, prefix, 'train'), content_type=content_type)
validation_input = TrainingInput("s3://{}/{}/{}/".format(bucket, prefix, 'validation'), content_type=content_type)
```

 有关 SageMaker Python SDK 版本 2.x 变更的完整列表，请参阅[使用 Pyth SageMaker on SDK 的 2.x 版本](https://sagemaker.readthedocs.io/en/stable/v2.html)。

## 更改 Boto3 的 Docker 映像
<a name="upgrade-xgboost-version-0.90-boto3"></a>

如果您使用 Boto3 来训练或部署模型，请将 Docker 映像标签（1、0.72、0.90-1 或 0.90-2）更改为 1.5-1。

```
{
    "AlgorithmSpecification":: {
        "TrainingImage": "746614075791.dkr.ecr.us-west-1.amazonaws.com/sagemaker-xgboost:1.5-1"
    }
    ...
}
```

如果您使用 SageMaker Python SDK 检索注册表路径，请更改中的`version`参数`image_uris.retrieve`。

```
from sagemaker import image_uris
image_uris.retrieve(framework="xgboost", region="us-west-2", version="1.5-1")
```

## 更新超参数和学习目标
<a name="upgrade-xgboost-version-0.90-hyperparameters"></a>

silent 参数已被弃用，在 XGBoost 1.5 及更高版本中不再可用。请改用 `verbosity`。如果您在使用 `reg:linear` 学习目标，那么它也已被弃用，转而使用 ` reg:squarederror`。请改用 `reg:squarederror`。

```
hyperparameters = {
    "verbosity": "2",
    "objective": "reg:squarederror",
    "num_round": "50",
    ...
}

estimator = sagemaker.estimator.Estimator(image_uri=xgboost_container, 
                                          hyperparameters=hyperparameters,
                                          ...)
```