createHyperParameterTuningJob method
- required HyperParameterTuningJobConfig hyperParameterTuningJobConfig,
- required String hyperParameterTuningJobName,
- Autotune? autotune,
- List<
Tag> ? tags, - HyperParameterTrainingJobDefinition? trainingJobDefinition,
- List<
HyperParameterTrainingJobDefinition> ? trainingJobDefinitions, - HyperParameterTuningJobWarmStartConfig? warmStartConfig,
Starts a hyperparameter tuning job. A hyperparameter tuning job finds the best version of a model by running many training jobs on your dataset using the algorithm you choose and values for hyperparameters within ranges that you specify. It then chooses the hyperparameter values that result in a model that performs the best, as measured by an objective metric that you choose.
A hyperparameter tuning job automatically creates Amazon SageMaker experiments, trials, and trial components for each training job that it runs. You can view these entities in Amazon SageMaker Studio. For more information, see View Experiments, Trials, and Trial Components.
May throw ResourceInUse.
May throw ResourceLimitExceeded.
Parameter hyperParameterTuningJobConfig :
The HyperParameterTuningJobConfig
object that describes the tuning job, including the search strategy, the
objective metric used to evaluate training jobs, ranges of parameters to
search, and resource limits for the tuning job. For more information, see
How
Hyperparameter Tuning Works.
Parameter hyperParameterTuningJobName :
The name of the tuning job. This name is the prefix for the names of all
training jobs that this tuning job launches. The name must be unique
within the same Amazon Web Services account and Amazon Web Services
Region. The name must have 1 to 32 characters. Valid characters are a-z,
A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case sensitive.
Parameter autotune :
Configures SageMaker Automatic model tuning (AMT) to automatically find
optimal parameters for the following fields:
- ParameterRanges: The names and ranges of parameters that a hyperparameter tuning job can optimize.
- ResourceLimits: The maximum resources that can be used for a training job. These resources include the maximum number of training jobs, the maximum runtime of a tuning job, and the maximum number of training jobs to run at the same time.
- TrainingJobEarlyStoppingType: A flag that specifies whether or not to use early stopping for training jobs launched by a hyperparameter tuning job.
- RetryStrategy: The number of times to retry a training job.
- Strategy: Specifies how hyperparameter tuning chooses the combinations of hyperparameter values to use for the training jobs that it launches.
- ConvergenceDetected: A flag to indicate that Automatic model tuning (AMT) has detected model convergence.
Parameter tags :
An array of key-value pairs. You can use tags to categorize your Amazon
Web Services resources in different ways, for example, by purpose, owner,
or environment. For more information, see Tagging
Amazon Web Services Resources.
Tags that you specify for the tuning job are also added to all training jobs that the tuning job launches.
Parameter trainingJobDefinition :
The HyperParameterTrainingJobDefinition
object that describes the training jobs that this tuning job launches,
including static hyperparameters, input data configuration, output data
configuration, resource configuration, and stopping condition.
Parameter trainingJobDefinitions :
A list of the HyperParameterTrainingJobDefinition
objects launched for this tuning job.
Parameter warmStartConfig :
Specifies the configuration for starting the hyperparameter tuning job
using one or more previous 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. If you specify
IDENTICAL_DATA_AND_ALGORITHM as the
WarmStartType value for the warm start configuration, the
training job that performs the best in the new tuning job 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.
Implementation
Future<CreateHyperParameterTuningJobResponse> createHyperParameterTuningJob({
required HyperParameterTuningJobConfig hyperParameterTuningJobConfig,
required String hyperParameterTuningJobName,
Autotune? autotune,
List<Tag>? tags,
HyperParameterTrainingJobDefinition? trainingJobDefinition,
List<HyperParameterTrainingJobDefinition>? trainingJobDefinitions,
HyperParameterTuningJobWarmStartConfig? warmStartConfig,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'SageMaker.CreateHyperParameterTuningJob'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'HyperParameterTuningJobConfig': hyperParameterTuningJobConfig,
'HyperParameterTuningJobName': hyperParameterTuningJobName,
if (autotune != null) 'Autotune': autotune,
if (tags != null) 'Tags': tags,
if (trainingJobDefinition != null)
'TrainingJobDefinition': trainingJobDefinition,
if (trainingJobDefinitions != null)
'TrainingJobDefinitions': trainingJobDefinitions,
if (warmStartConfig != null) 'WarmStartConfig': warmStartConfig,
},
);
return CreateHyperParameterTuningJobResponse.fromJson(jsonResponse.body);
}