service/sagemaker/api_op_CreateHyperParameterTuningJob.go (144 lines of code) (raw):

// Code generated by smithy-go-codegen DO NOT EDIT. package sagemaker import ( "context" "fmt" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" ) // 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 fields. As part of the shared // responsibility model, you are responsible for any potential exposure, // unauthorized access, or compromise of your sensitive data if caused by any // security-sensitive information included in the request hyperparameter variable // or plain text fields.. // // [View Experiments, Trials, and Trial Components]: https://docs.aws.amazon.com/sagemaker/latest/dg/experiments-view-compare.html#experiments-view func (c *Client) CreateHyperParameterTuningJob(ctx context.Context, params *CreateHyperParameterTuningJobInput, optFns ...func(*Options)) (*CreateHyperParameterTuningJobOutput, error) { if params == nil { params = &CreateHyperParameterTuningJobInput{} } result, metadata, err := c.invokeOperation(ctx, "CreateHyperParameterTuningJob", params, optFns, c.addOperationCreateHyperParameterTuningJobMiddlewares) if err != nil { return nil, err } out := result.(*CreateHyperParameterTuningJobOutput) out.ResultMetadata = metadata return out, nil } type CreateHyperParameterTuningJobInput struct { // 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]. // // [How Hyperparameter Tuning Works]: https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html // [HyperParameterTuningJobConfig]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html // // This member is required. HyperParameterTuningJobConfig *types.HyperParameterTuningJobConfig // 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. // // This member is required. HyperParameterTuningJobName *string // 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. // // [TrainingJobEarlyStoppingType]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType // [ConvergenceDetected]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html // [ResourceLimits]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html // [Strategy]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html // [ParameterRanges]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges // [RetryStrategy]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy Autotune *types.Autotune // 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. // // [Tagging Amazon Web Services Resources]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tags []types.Tag // 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. // // [HyperParameterTrainingJobDefinition]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html TrainingJobDefinition *types.HyperParameterTrainingJobDefinition // A list of the [HyperParameterTrainingJobDefinition] objects launched for this tuning job. // // [HyperParameterTrainingJobDefinition]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html TrainingJobDefinitions []types.HyperParameterTrainingJobDefinition // 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. WarmStartConfig *types.HyperParameterTuningJobWarmStartConfig noSmithyDocumentSerde } type CreateHyperParameterTuningJobOutput struct { // The Amazon Resource Name (ARN) of the tuning job. SageMaker assigns an ARN to a // hyperparameter tuning job when you create it. // // This member is required. HyperParameterTuningJobArn *string // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata noSmithyDocumentSerde } func (c *Client) addOperationCreateHyperParameterTuningJobMiddlewares(stack *middleware.Stack, options Options) (err error) { if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { return err } err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateHyperParameterTuningJob{}, middleware.After) if err != nil { return err } err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateHyperParameterTuningJob{}, middleware.After) if err != nil { return err } if err := addProtocolFinalizerMiddlewares(stack, options, "CreateHyperParameterTuningJob"); err != nil { return fmt.Errorf("add protocol finalizers: %v", err) } if err = addlegacyEndpointContextSetter(stack, options); err != nil { return err } if err = addSetLoggerMiddleware(stack, options); err != nil { return err } if err = addClientRequestID(stack); err != nil { return err } if err = addComputeContentLength(stack); err != nil { return err } if err = addResolveEndpointMiddleware(stack, options); err != nil { return err } if err = addComputePayloadSHA256(stack); err != nil { return err } if err = addRetry(stack, options); err != nil { return err } if err = addRawResponseToMetadata(stack); err != nil { return err } if err = addRecordResponseTiming(stack); err != nil { return err } if err = addSpanRetryLoop(stack, options); err != nil { return err } if err = addClientUserAgent(stack, options); err != nil { return err } if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { return err } if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { return err } if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { return err } if err = addTimeOffsetBuild(stack, c); err != nil { return err } if err = addUserAgentRetryMode(stack, options); err != nil { return err } if err = addCredentialSource(stack, options); err != nil { return err } if err = addOpCreateHyperParameterTuningJobValidationMiddleware(stack); err != nil { return err } if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateHyperParameterTuningJob(options.Region), middleware.Before); err != nil { return err } if err = addRecursionDetection(stack); err != nil { return err } if err = addRequestIDRetrieverMiddleware(stack); err != nil { return err } if err = addResponseErrorMiddleware(stack); err != nil { return err } if err = addRequestResponseLogging(stack, options); err != nil { return err } if err = addDisableHTTPSMiddleware(stack, options); err != nil { return err } if err = addSpanInitializeStart(stack); err != nil { return err } if err = addSpanInitializeEnd(stack); err != nil { return err } if err = addSpanBuildRequestStart(stack); err != nil { return err } if err = addSpanBuildRequestEnd(stack); err != nil { return err } return nil } func newServiceMetadataMiddleware_opCreateHyperParameterTuningJob(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, ServiceID: ServiceID, OperationName: "CreateHyperParameterTuningJob", } }