/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SageMaker { namespace Model { /** *

Specifies the configuration for a hyperparameter tuning job that uses one or * more previous hyperparameter tuning jobs as a starting point. The results of * previous tuning jobs are used to inform which combinations of hyperparameters to * search over in the new tuning job.

All training jobs launched by the new * hyperparameter tuning job are evaluated by using the objective metric, and the * training job that performs the best is compared to the best training jobs from * the parent tuning jobs. From these, the training job that performs the best as * measured by the objective metric is returned as the overall best training * job.

All training jobs launched by parent hyperparameter tuning * jobs and the new hyperparameter tuning jobs count against the limit of training * jobs for the tuning job.

See Also:

AWS * API Reference

*/ class HyperParameterTuningJobWarmStartConfig { public: AWS_SAGEMAKER_API HyperParameterTuningJobWarmStartConfig(); AWS_SAGEMAKER_API HyperParameterTuningJobWarmStartConfig(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API HyperParameterTuningJobWarmStartConfig& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline const Aws::Vector& GetParentHyperParameterTuningJobs() const{ return m_parentHyperParameterTuningJobs; } /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline bool ParentHyperParameterTuningJobsHasBeenSet() const { return m_parentHyperParameterTuningJobsHasBeenSet; } /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline void SetParentHyperParameterTuningJobs(const Aws::Vector& value) { m_parentHyperParameterTuningJobsHasBeenSet = true; m_parentHyperParameterTuningJobs = value; } /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline void SetParentHyperParameterTuningJobs(Aws::Vector&& value) { m_parentHyperParameterTuningJobsHasBeenSet = true; m_parentHyperParameterTuningJobs = std::move(value); } /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline HyperParameterTuningJobWarmStartConfig& WithParentHyperParameterTuningJobs(const Aws::Vector& value) { SetParentHyperParameterTuningJobs(value); return *this;} /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline HyperParameterTuningJobWarmStartConfig& WithParentHyperParameterTuningJobs(Aws::Vector&& value) { SetParentHyperParameterTuningJobs(std::move(value)); return *this;} /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline HyperParameterTuningJobWarmStartConfig& AddParentHyperParameterTuningJobs(const ParentHyperParameterTuningJob& value) { m_parentHyperParameterTuningJobsHasBeenSet = true; m_parentHyperParameterTuningJobs.push_back(value); return *this; } /** *

An array of hyperparameter tuning jobs that are used as the starting point * for the new hyperparameter tuning job. For more information about warm starting * a hyperparameter tuning job, see Using * a Previous Hyperparameter Tuning Job as a Starting Point.

*

Hyperparameter tuning jobs created before October 1, 2018 cannot be used as * parent jobs for warm start tuning jobs.

*/ inline HyperParameterTuningJobWarmStartConfig& AddParentHyperParameterTuningJobs(ParentHyperParameterTuningJob&& value) { m_parentHyperParameterTuningJobsHasBeenSet = true; m_parentHyperParameterTuningJobs.push_back(std::move(value)); return *this; } /** *

Specifies one of the following:

*
IDENTICAL_DATA_AND_ALGORITHM

The new hyperparameter tuning job * uses the same input data and training image as the parent tuning jobs. You can * change the hyperparameter ranges to search and the maximum number of training * jobs that the hyperparameter tuning job launches. You cannot use a new version * of the training algorithm, unless the changes in the new version do not affect * the algorithm itself. For example, changes that improve logging or adding * support for a different data format are allowed. You can also change * hyperparameters from tunable to static, and from static to tunable, but the * total number of static plus tunable hyperparameters must remain the same as it * is in all parent jobs. The objective metric for the new tuning job must be the * same as for all parent jobs.

TRANSFER_LEARNING

The * new hyperparameter tuning job can include input data, hyperparameter ranges, * maximum number of concurrent training jobs, and maximum number of training jobs * that are different than those of its parent hyperparameter tuning jobs. The * training image can also be a different version from the version used in the * parent hyperparameter tuning job. You can also change hyperparameters from * tunable to static, and from static to tunable, but the total number of static * plus tunable hyperparameters must remain the same as it is in all parent jobs. * The objective metric for the new tuning job must be the same as for all parent * jobs.

*/ inline const HyperParameterTuningJobWarmStartType& GetWarmStartType() const{ return m_warmStartType; } /** *

Specifies one of the following:

*
IDENTICAL_DATA_AND_ALGORITHM

The new hyperparameter tuning job * uses the same input data and training image as the parent tuning jobs. You can * change the hyperparameter ranges to search and the maximum number of training * jobs that the hyperparameter tuning job launches. You cannot use a new version * of the training algorithm, unless the changes in the new version do not affect * the algorithm itself. For example, changes that improve logging or adding * support for a different data format are allowed. You can also change * hyperparameters from tunable to static, and from static to tunable, but the * total number of static plus tunable hyperparameters must remain the same as it * is in all parent jobs. The objective metric for the new tuning job must be the * same as for all parent jobs.

TRANSFER_LEARNING

The * new hyperparameter tuning job can include input data, hyperparameter ranges, * maximum number of concurrent training jobs, and maximum number of training jobs * that are different than those of its parent hyperparameter tuning jobs. The * training image can also be a different version from the version used in the * parent hyperparameter tuning job. You can also change hyperparameters from * tunable to static, and from static to tunable, but the total number of static * plus tunable hyperparameters must remain the same as it is in all parent jobs. * The objective metric for the new tuning job must be the same as for all parent * jobs.

*/ inline bool WarmStartTypeHasBeenSet() const { return m_warmStartTypeHasBeenSet; } /** *

Specifies one of the following:

*
IDENTICAL_DATA_AND_ALGORITHM

The new hyperparameter tuning job * uses the same input data and training image as the parent tuning jobs. You can * change the hyperparameter ranges to search and the maximum number of training * jobs that the hyperparameter tuning job launches. You cannot use a new version * of the training algorithm, unless the changes in the new version do not affect * the algorithm itself. For example, changes that improve logging or adding * support for a different data format are allowed. You can also change * hyperparameters from tunable to static, and from static to tunable, but the * total number of static plus tunable hyperparameters must remain the same as it * is in all parent jobs. The objective metric for the new tuning job must be the * same as for all parent jobs.

TRANSFER_LEARNING

The * new hyperparameter tuning job can include input data, hyperparameter ranges, * maximum number of concurrent training jobs, and maximum number of training jobs * that are different than those of its parent hyperparameter tuning jobs. The * training image can also be a different version from the version used in the * parent hyperparameter tuning job. You can also change hyperparameters from * tunable to static, and from static to tunable, but the total number of static * plus tunable hyperparameters must remain the same as it is in all parent jobs. * The objective metric for the new tuning job must be the same as for all parent * jobs.

*/ inline void SetWarmStartType(const HyperParameterTuningJobWarmStartType& value) { m_warmStartTypeHasBeenSet = true; m_warmStartType = value; } /** *

Specifies one of the following:

*
IDENTICAL_DATA_AND_ALGORITHM

The new hyperparameter tuning job * uses the same input data and training image as the parent tuning jobs. You can * change the hyperparameter ranges to search and the maximum number of training * jobs that the hyperparameter tuning job launches. You cannot use a new version * of the training algorithm, unless the changes in the new version do not affect * the algorithm itself. For example, changes that improve logging or adding * support for a different data format are allowed. You can also change * hyperparameters from tunable to static, and from static to tunable, but the * total number of static plus tunable hyperparameters must remain the same as it * is in all parent jobs. The objective metric for the new tuning job must be the * same as for all parent jobs.

TRANSFER_LEARNING

The * new hyperparameter tuning job can include input data, hyperparameter ranges, * maximum number of concurrent training jobs, and maximum number of training jobs * that are different than those of its parent hyperparameter tuning jobs. The * training image can also be a different version from the version used in the * parent hyperparameter tuning job. You can also change hyperparameters from * tunable to static, and from static to tunable, but the total number of static * plus tunable hyperparameters must remain the same as it is in all parent jobs. * The objective metric for the new tuning job must be the same as for all parent * jobs.

*/ inline void SetWarmStartType(HyperParameterTuningJobWarmStartType&& value) { m_warmStartTypeHasBeenSet = true; m_warmStartType = std::move(value); } /** *

Specifies one of the following:

*
IDENTICAL_DATA_AND_ALGORITHM

The new hyperparameter tuning job * uses the same input data and training image as the parent tuning jobs. You can * change the hyperparameter ranges to search and the maximum number of training * jobs that the hyperparameter tuning job launches. You cannot use a new version * of the training algorithm, unless the changes in the new version do not affect * the algorithm itself. For example, changes that improve logging or adding * support for a different data format are allowed. You can also change * hyperparameters from tunable to static, and from static to tunable, but the * total number of static plus tunable hyperparameters must remain the same as it * is in all parent jobs. The objective metric for the new tuning job must be the * same as for all parent jobs.

TRANSFER_LEARNING

The * new hyperparameter tuning job can include input data, hyperparameter ranges, * maximum number of concurrent training jobs, and maximum number of training jobs * that are different than those of its parent hyperparameter tuning jobs. The * training image can also be a different version from the version used in the * parent hyperparameter tuning job. You can also change hyperparameters from * tunable to static, and from static to tunable, but the total number of static * plus tunable hyperparameters must remain the same as it is in all parent jobs. * The objective metric for the new tuning job must be the same as for all parent * jobs.

*/ inline HyperParameterTuningJobWarmStartConfig& WithWarmStartType(const HyperParameterTuningJobWarmStartType& value) { SetWarmStartType(value); return *this;} /** *

Specifies one of the following:

*
IDENTICAL_DATA_AND_ALGORITHM

The new hyperparameter tuning job * uses the same input data and training image as the parent tuning jobs. You can * change the hyperparameter ranges to search and the maximum number of training * jobs that the hyperparameter tuning job launches. You cannot use a new version * of the training algorithm, unless the changes in the new version do not affect * the algorithm itself. For example, changes that improve logging or adding * support for a different data format are allowed. You can also change * hyperparameters from tunable to static, and from static to tunable, but the * total number of static plus tunable hyperparameters must remain the same as it * is in all parent jobs. The objective metric for the new tuning job must be the * same as for all parent jobs.

TRANSFER_LEARNING

The * new hyperparameter tuning job can include input data, hyperparameter ranges, * maximum number of concurrent training jobs, and maximum number of training jobs * that are different than those of its parent hyperparameter tuning jobs. The * training image can also be a different version from the version used in the * parent hyperparameter tuning job. You can also change hyperparameters from * tunable to static, and from static to tunable, but the total number of static * plus tunable hyperparameters must remain the same as it is in all parent jobs. * The objective metric for the new tuning job must be the same as for all parent * jobs.

*/ inline HyperParameterTuningJobWarmStartConfig& WithWarmStartType(HyperParameterTuningJobWarmStartType&& value) { SetWarmStartType(std::move(value)); return *this;} private: Aws::Vector m_parentHyperParameterTuningJobs; bool m_parentHyperParameterTuningJobsHasBeenSet = false; HyperParameterTuningJobWarmStartType m_warmStartType; bool m_warmStartTypeHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws