/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the sagemaker-2017-07-24.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SageMaker.Model
{
///
/// Container for the parameters to the CreateHyperParameterTuningJob operation.
/// 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.
///
///
///
/// Do not include any security-sensitive information including account access IDs, secrets
/// or tokens in any hyperparameter field. If the use of security-sensitive credentials
/// are detected, SageMaker will reject your training job request and return an exception
/// error.
///
///
///
public partial class CreateHyperParameterTuningJobRequest : AmazonSageMakerRequest
{
private Autotune _autotune;
private HyperParameterTuningJobConfig _hyperParameterTuningJobConfig;
private string _hyperParameterTuningJobName;
private List _tags = new List();
private HyperParameterTrainingJobDefinition _trainingJobDefinition;
private List _trainingJobDefinitions = new List();
private HyperParameterTuningJobWarmStartConfig _warmStartConfig;
///
/// Gets and sets the property 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.
///
///
///
public Autotune Autotune
{
get { return this._autotune; }
set { this._autotune = value; }
}
// Check to see if Autotune property is set
internal bool IsSetAutotune()
{
return this._autotune != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public HyperParameterTuningJobConfig HyperParameterTuningJobConfig
{
get { return this._hyperParameterTuningJobConfig; }
set { this._hyperParameterTuningJobConfig = value; }
}
// Check to see if HyperParameterTuningJobConfig property is set
internal bool IsSetHyperParameterTuningJobConfig()
{
return this._hyperParameterTuningJobConfig != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true, Min=1, Max=32)]
public string HyperParameterTuningJobName
{
get { return this._hyperParameterTuningJobName; }
set { this._hyperParameterTuningJobName = value; }
}
// Check to see if HyperParameterTuningJobName property is set
internal bool IsSetHyperParameterTuningJobName()
{
return this._hyperParameterTuningJobName != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=50)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
public HyperParameterTrainingJobDefinition TrainingJobDefinition
{
get { return this._trainingJobDefinition; }
set { this._trainingJobDefinition = value; }
}
// Check to see if TrainingJobDefinition property is set
internal bool IsSetTrainingJobDefinition()
{
return this._trainingJobDefinition != null;
}
///
/// Gets and sets the property TrainingJobDefinitions.
///
/// A list of the HyperParameterTrainingJobDefinition
/// objects launched for this tuning job.
///
///
[AWSProperty(Min=1, Max=10)]
public List TrainingJobDefinitions
{
get { return this._trainingJobDefinitions; }
set { this._trainingJobDefinitions = value; }
}
// Check to see if TrainingJobDefinitions property is set
internal bool IsSetTrainingJobDefinitions()
{
return this._trainingJobDefinitions != null && this._trainingJobDefinitions.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
///
/// 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.
///
///
///
public HyperParameterTuningJobWarmStartConfig WarmStartConfig
{
get { return this._warmStartConfig; }
set { this._warmStartConfig = value; }
}
// Check to see if WarmStartConfig property is set
internal bool IsSetWarmStartConfig()
{
return this._warmStartConfig != null;
}
}
}