

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Jalankan Pekerjaan Penyetelan Hyperparameter Warm Start
<a name="automatic-model-tuning-warm-start"></a>

Gunakan start hangat untuk memulai pekerjaan penyetelan hyperparameter menggunakan satu atau lebih pekerjaan penyetelan sebelumnya sebagai titik awal. Hasil pekerjaan penyetelan sebelumnya digunakan untuk menginformasikan kombinasi hyperparameter mana yang akan dicari dalam pekerjaan penyetelan baru. Penyetelan hyperparameter menggunakan pencarian Bayesian atau acak untuk memilih kombinasi nilai hyperparameter dari rentang yang Anda tentukan. Untuk informasi selengkapnya, lihat [Memahami strategi penyetelan hyperparameter yang tersedia di Amazon AI SageMaker](automatic-model-tuning-how-it-works.md). Menggunakan informasi dari pekerjaan penyetelan hyperparameter sebelumnya dapat membantu meningkatkan kinerja pekerjaan penyetelan hyperparameter baru dengan membuat pencarian kombinasi hyperparameter terbaik menjadi lebih efisien.

**catatan**  
Pekerjaan penyetelan awal hangat biasanya membutuhkan waktu lebih lama untuk memulai daripada pekerjaan penyetelan hyperparameter standar, karena hasil dari pekerjaan induk harus dimuat sebelum pekerjaan dapat dimulai. Peningkatan waktu tergantung pada jumlah total pekerjaan pelatihan yang diluncurkan oleh pekerjaan induk.

Alasan untuk mempertimbangkan awal yang hangat meliputi yang berikut:
+ Untuk secara bertahap meningkatkan jumlah pekerjaan pelatihan selama beberapa pekerjaan tuning berdasarkan hasil setelah setiap iterasi.
+ Untuk menyetel model menggunakan data baru yang Anda terima.
+ Untuk mengubah rentang hyperparameter yang Anda gunakan dalam pekerjaan penyetelan sebelumnya, ubah hyperparameter statis menjadi dapat disetel, atau ubah hyperparameter yang dapat disetel ke nilai statis.
+ Anda menghentikan pekerjaan hyperparameter sebelumnya lebih awal atau berhenti secara tidak terduga.

**Topics**
+ [Jenis Pekerjaan Tuning Mulai Hangat](#tuning-warm-start-types)
+ [Batasan Penyetelan Mulai Hangat](#warm-start-tuning-restrictions)
+ [Notebook Sampel Penyetelan Mulai Hangat](#warm-start-tuning-sample-notebooks)
+ [Buat Pekerjaan Penyetelan Mulai yang Hangat](#warm-start-tuning-example)

## Jenis Pekerjaan Tuning Mulai Hangat
<a name="tuning-warm-start-types"></a>

Ada dua jenis pekerjaan penyetelan awal hangat:

`IDENTICAL_DATA_AND_ALGORITHM`  
Pekerjaan penyetelan hyperparameter baru menggunakan data input dan gambar pelatihan yang sama dengan pekerjaan penyetelan induk. Anda dapat mengubah rentang hyperparameter untuk mencari dan jumlah maksimum pekerjaan pelatihan yang diluncurkan oleh pekerjaan penyetelan hyperparameter. Anda juga dapat mengubah hyperparameter dari yang dapat disetel ke statis, dan dari statis ke yang dapat disetel, tetapi jumlah total hyperparameter statis plus yang dapat disetel harus tetap sama seperti di semua pekerjaan induk. Anda tidak dapat menggunakan versi baru dari algoritma pelatihan, kecuali perubahan dalam versi baru tidak mempengaruhi algoritma itu sendiri. Misalnya, perubahan yang meningkatkan logging atau menambahkan dukungan untuk format data yang berbeda diperbolehkan.  
Gunakan data dan algoritma yang identik saat Anda menggunakan data pelatihan yang sama seperti yang Anda gunakan dalam pekerjaan penyetelan hyperparameter sebelumnya, tetapi Anda ingin meningkatkan jumlah total pekerjaan pelatihan atau mengubah rentang atau nilai hyperparameter.  
Saat Anda menjalankan tugas penyetelan awal hangat dari jenis`IDENTICAL_DATA_AND_ALGORITHM`, ada bidang tambahan dalam respons terhadap [`DescribeHyperParameterTuningJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeHyperParameterTuningJob.html) nama`OverallBestTrainingJob`. Nilai bidang ini adalah [ TrainingJobSummary ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html) untuk pekerjaan pelatihan dengan nilai metrik objektif terbaik dari semua pekerjaan pelatihan yang diluncurkan oleh pekerjaan penyetelan ini dan semua pekerjaan induk yang ditentukan untuk pekerjaan penyetelan awal hangat.

`TRANSFER_LEARNING`  
Pekerjaan penyetelan hyperparameter baru dapat mencakup data input, rentang hyperparameter, jumlah maksimum pekerjaan pelatihan bersamaan, dan jumlah maksimum pekerjaan pelatihan yang berbeda dari pekerjaan penyetelan hyperparameter induknya. Anda juga dapat mengubah hyperparameter dari yang dapat disetel ke statis, dan dari statis ke yang dapat disetel, tetapi jumlah total hyperparameter statis plus yang dapat disetel harus tetap sama seperti di semua pekerjaan induk. Gambar algoritma pelatihan juga bisa menjadi versi yang berbeda dari versi yang digunakan dalam pekerjaan penyetelan hyperparameter induk. Saat Anda menggunakan pembelajaran transfer, perubahan dalam dataset atau algoritma yang secara signifikan mempengaruhi nilai metrik objektif dapat mengurangi kegunaan menggunakan penyetelan awal hangat.

## Batasan Penyetelan Mulai Hangat
<a name="warm-start-tuning-restrictions"></a>

Pembatasan berikut berlaku untuk semua pekerjaan penyetelan awal hangat:
+ Pekerjaan penyetelan dapat memiliki maksimal 5 pekerjaan induk, dan semua pekerjaan induk harus berada dalam status terminal (`Completed`,`Stopped`, atau`Failed`) sebelum Anda memulai pekerjaan penyetelan baru.
+ Metrik objektif yang digunakan dalam pekerjaan penyetelan baru harus sama dengan metrik objektif yang digunakan dalam pekerjaan induk.
+ Jumlah total hyperparameter statis plus yang dapat disetel harus tetap sama antara pekerjaan induk dan pekerjaan penyetelan baru. Karena itu, jika menurut Anda mungkin ingin menggunakan hyperparameter sebagai dapat disetel dalam pekerjaan penyetelan awal hangat di masa mendatang, Anda harus menambahkannya sebagai hyperparameter statis saat Anda membuat pekerjaan penyetelan.
+ Jenis setiap hyperparameter (kontinu, integer, kategoris) tidak boleh berubah antara pekerjaan induk dan pekerjaan penyetelan baru.
+ Jumlah perubahan total dari hyperparameter yang dapat disetel dalam pekerjaan induk ke hyperparameter statis dalam pekerjaan penyetelan baru, ditambah jumlah perubahan nilai hyperparameter statis tidak boleh lebih dari 10. Misalnya, jika pekerjaan induk memiliki hyperparameter kategoris yang dapat disetel dengan nilai yang mungkin `red` dan`blue`, Anda mengubah hyperparameter tersebut menjadi statis dalam pekerjaan penyetelan baru, itu dihitung sebagai 2 perubahan terhadap total 10 yang diizinkan. Jika hyperparameter yang sama memiliki nilai statis `red` di pekerjaan induk, dan Anda mengubah nilai statis ke `blue` dalam pekerjaan penyetelan baru, itu juga dihitung sebagai 2 perubahan.
+ Penyetelan awal hangat tidak rekursif. Misalnya, jika Anda membuat `MyTuningJob3` pekerjaan penyetelan awal hangat dengan `MyTuningJob2` pekerjaan induk, dan itu sendiri `MyTuningJob2` merupakan pekerjaan penyetelan awal hangat dengan pekerjaan induk`MyTuningJob1`, informasi yang dipelajari saat menjalankan `MyTuningJob1` tidak digunakan untuk`MyTuningJob3`. Jika Anda ingin menggunakan informasi dari`MyTuningJob1`, Anda harus menambahkannya secara eksplisit sebagai induk untuk`MyTuningJob3`.
+ Pekerjaan pelatihan yang diluncurkan oleh setiap pekerjaan induk dalam pekerjaan tuning awal yang hangat dihitung terhadap 500 pekerjaan pelatihan maksimum untuk pekerjaan tuning.
+ Pekerjaan penyetelan hyperparameter yang dibuat sebelum 1 Oktober 2018 tidak dapat digunakan sebagai pekerjaan induk untuk pekerjaan penyetelan awal hangat.

## Notebook Sampel Penyetelan Mulai Hangat
<a name="warm-start-tuning-sample-notebooks"></a>

Untuk contoh notebook yang menunjukkan cara menggunakan penyetelan awal hangat, lihat [ https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter\_tuning/image\_classification\_warmstart/hpo\_image\_classification\_warmstart.ipynb](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter_tuning/image_classification_warmstart/hpo_image_classification_warmstart.ipynb).

## Buat Pekerjaan Penyetelan Mulai yang Hangat
<a name="warm-start-tuning-example"></a>

Anda dapat menggunakan AWS SDK tingkat rendah untuk Python (Boto 3) atau SageMaker AI Python SDK tingkat tinggi untuk membuat pekerjaan penyetelan awal yang hangat.

**Topics**
+ [Buat Pekerjaan Tuning Mulai yang Hangat (API Low-level SageMaker AI untuk Python (Boto 3))](#warm-start-tuning-example-boto)
+ [Buat Pekerjaan Penyetelan Mulai yang Hangat (SageMaker AI Python SDK)](#warm-start-tuning-example-sdk)

### Buat Pekerjaan Tuning Mulai yang Hangat (API Low-level SageMaker AI untuk Python (Boto 3))
<a name="warm-start-tuning-example-boto"></a>

Untuk menggunakan penyetelan awal hangat, Anda menentukan nilai [`HyperParameterTuningJobWarmStartConfig`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobWarmStartConfig.html) objek, dan meneruskannya sebagai `WarmStartConfig` bidang dalam panggilan ke [`CreateHyperParameterTuningJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html).

Kode berikut menunjukkan cara membuat [`HyperParameterTuningJobWarmStartConfig`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobWarmStartConfig.html) objek dan meneruskannya ke [`CreateHyperParameterTuningJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html) pekerjaan dengan menggunakan API SageMaker AI tingkat rendah untuk Python (Boto 3).

Buat `HyperParameterTuningJobWarmStartConfig` objek:

```
warm_start_config = {
          "ParentHyperParameterTuningJobs" : [
          {"HyperParameterTuningJobName" : 'MyParentTuningJob'}
          ],
          "WarmStartType" : "IdenticalDataAndAlgorithm"
}
```

Buat pekerjaan penyetelan awal yang hangat:

```
smclient = boto3.Session().client('sagemaker')
smclient.create_hyper_parameter_tuning_job(HyperParameterTuningJobName = 'MyWarmStartTuningJob',
   HyperParameterTuningJobConfig = tuning_job_config, # See notebook for tuning configuration
   TrainingJobDefinition = training_job_definition, # See notebook for job definition
   WarmStartConfig = warm_start_config)
```

### Buat Pekerjaan Penyetelan Mulai yang Hangat (SageMaker AI Python SDK)
<a name="warm-start-tuning-example-sdk"></a>

Untuk menggunakan [ Amazon SageMaker Python SDK ](https://sagemaker.readthedocs.io/en/stable) untuk menjalankan pekerjaan penyetelan awal yang hangat, Anda:
+ Tentukan pekerjaan induk dan jenis awal hangat dengan menggunakan `WarmStartConfig` objek.
+ M `WarmStartConfig` eneruskan objek sebagai nilai `warm_start_config` argumen [ HyperparameterTuner ](https://sagemaker.readthedocs.io/en/stable/api/sagemaker_train.html) objek.
+ Pang `tune` gil metode `HyperparameterTuner` objek.

Untuk informasi selengkapnya tentang menggunakan [ Amazon SageMaker Python SDK ](https://sagemaker.readthedocs.io/en/stable) untuk penyetelan hyperparameter, lihat [ https://github.com/aws/sagemaker-python-sdk \#sagemaker -automatic-model- ](https://github.com/aws/sagemaker-python-sdk#sagemaker-automatic-model-tuning) tuning.

Contoh ini menggunakan estimator yang menggunakan [Klasifikasi Gambar - MXNet](image-classification.md) algoritma untuk pelatihan. Kode berikut menetapkan rentang hyperparameter yang dicari oleh pekerjaan penyetelan awal hangat di dalamnya untuk menemukan kombinasi nilai terbaik. Untuk informasi tentang menyetel rentang hyperparameter, lihat[Tentukan Rentang Hyperparameter](automatic-model-tuning-define-ranges.md).

```
hyperparameter_ranges = {'learning_rate': ContinuousParameter(0.0, 0.1),
                         'momentum': ContinuousParameter(0.0, 0.99)}
```

Kode berikut mengonfigurasi pekerjaan penyetelan awal hangat dengan membuat `WarmStartConfig` objek.

```
from sagemaker.train.tuner import WarmStartTypes
from sagemaker.core.shapes import HyperParameterTuningJobWarmStartConfig

parent_tuning_job_name = "MyParentTuningJob"
warm_start_config = HyperParameterTuningJobWarmStartConfig(warm_start_type=WarmStartTypes.IDENTICAL_DATA_AND_ALGORITHM, parents=[parent_tuning_job_name])
```

Sekarang atur nilai untuk hyperparameter statis, yang merupakan hyperparameter yang mempertahankan nilai yang sama untuk setiap pekerjaan pelatihan yang diluncurkan oleh pekerjaan penyetelan awal hangat. Dalam kode berikut, `imageclassification` adalah ModelTrainer yang dibuat sebelumnya.

```
from sagemaker.train import ModelTrainer
from sagemaker.train.configs import Compute

imageclassification = ModelTrainer(
    training_image=training_image,
    role=role,
    hyperparameters={
        'num_layers': '18',
        'image_shape': '3,224,224',
        'num_classes': '257',
        'num_training_samples': '15420',
        'mini_batch_size': '128',
        'epochs': '30',
        'optimizer': 'sgd',
        'top_k': '2',
        'precision_dtype': 'float32',
        'augmentation_type': 'crop',
    },
    compute=Compute(instance_type='ml.p3.8xlarge', instance_count=1),
)
```

Sekarang buat `HyperparameterTuner` objek dan berikan `WarmStartConfig` objek yang sebelumnya Anda buat sebagai `warm_start_config` argumen.

```
tuner_warm_start = HyperparameterTuner(model_trainer=imageclassification,
                            objective_metric_name='validation:accuracy',
                            hyperparameter_ranges=hyperparameter_ranges,
                            objective_type='Maximize',
                            max_jobs=10,
                            max_parallel_jobs=2,
                            base_tuning_job_name='warmstart',
                            warm_start_config=warm_start_config)
```

Terakhir, panggil `fit` metode `tune` atau `HyperparameterTuner` objek untuk meluncurkan pekerjaan penyetelan awal hangat.

```
tuner_warm_start.tune(
        {'train': s3_input_train, 'validation': s3_input_validation})
```