The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Paws::SageMaker::CreateHyperParameterTuningJob - Arguments for method CreateHyperParameterTuningJob on Paws::SageMaker

DESCRIPTION

This class represents the parameters used for calling the method CreateHyperParameterTuningJob on the Amazon SageMaker Service service. Use the attributes of this class as arguments to method CreateHyperParameterTuningJob.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateHyperParameterTuningJob.

SYNOPSIS

 my $api.sagemaker = Paws->service('SageMaker');
 my $CreateHyperParameterTuningJobResponse =
   $api . sagemaker->CreateHyperParameterTuningJob(
   HyperParameterTuningJobConfig => {
     ResourceLimits => {
       MaxNumberOfTrainingJobs => 1,    # min: 1
       MaxParallelTrainingJobs => 1,    # min: 1

     },
     Strategy => 'Bayesian',            # values: Bayesian, Random
     HyperParameterTuningJobObjective => {
       MetricName => 'MyMetricName',    # min: 1, max: 255
       Type       => 'Maximize',        # values: Maximize, Minimize

     },    # OPTIONAL
     ParameterRanges => {
       CategoricalParameterRanges => [
         {
           Name   => 'MyParameterKey',    # max: 256
           Values => [
             'MyParameterValue', ...      # max: 256
           ],    # min: 1, max: 20

         },
         ...
       ],    # max: 20; OPTIONAL
       ContinuousParameterRanges => [
         {
           MaxValue    => 'MyParameterValue',    # max: 256
           MinValue    => 'MyParameterValue',    # max: 256
           Name        => 'MyParameterKey',      # max: 256
           ScalingType => 'Auto'
           , # values: Auto, Linear, Logarithmic, ReverseLogarithmic; OPTIONAL
         },
         ...
       ],    # max: 20; OPTIONAL
       IntegerParameterRanges => [
         {
           MaxValue    => 'MyParameterValue',    # max: 256
           MinValue    => 'MyParameterValue',    # max: 256
           Name        => 'MyParameterKey',      # max: 256
           ScalingType => 'Auto'
           , # values: Auto, Linear, Logarithmic, ReverseLogarithmic; OPTIONAL
         },
         ...
       ],    # max: 20; OPTIONAL
     },    # OPTIONAL
     TrainingJobEarlyStoppingType => 'Off',    # values: Off, Auto; OPTIONAL
     TuningJobCompletionCriteria  => {
       TargetObjectiveMetricValue => 1.0,

     },                                        # OPTIONAL
   },
   HyperParameterTuningJobName => 'MyHyperParameterTuningJobName',
   Tags                        => [
     {
       Key   => 'MyTagKey',      # min: 1, max: 128
       Value => 'MyTagValue',    # max: 256

     },
     ...
   ],    # OPTIONAL
   TrainingJobDefinition => {
     AlgorithmSpecification => {
       TrainingInputMode => 'Pipe',           # values: Pipe, File
       AlgorithmName     => 'MyArnOrName',    # min: 1, max: 170; OPTIONAL
       MetricDefinitions => [
         {
           Name  => 'MyMetricName',     # min: 1, max: 255
           Regex => 'MyMetricRegex',    # min: 1, max: 500

         },
         ...
       ],    # max: 40; OPTIONAL
       TrainingImage => 'MyAlgorithmImage',    # max: 255; OPTIONAL
     },
     OutputDataConfig => {
       S3OutputPath => 'MyS3Uri',              # max: 1024
       KmsKeyId     => 'MyKmsKeyId',           # max: 2048; OPTIONAL
     },
     ResourceConfig => {
       InstanceCount => 1,                     # min: 1
       InstanceType  => 'ml.m4.xlarge'
       , # values: ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.p3dn.24xlarge, ml.p4d.24xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5n.xlarge, ml.c5n.2xlarge, ml.c5n.4xlarge, ml.c5n.9xlarge, ml.c5n.18xlarge
       VolumeSizeInGB => 1,               # min: 1
       VolumeKmsKeyId => 'MyKmsKeyId',    # max: 2048; OPTIONAL
     },
     RoleArn           => 'MyRoleArn',    # min: 20, max: 2048
     StoppingCondition => {
       MaxRuntimeInSeconds  => 1,         # min: 1; OPTIONAL
       MaxWaitTimeInSeconds => 1,         # min: 1; OPTIONAL
     },
     CheckpointConfig => {
       S3Uri     => 'MyS3Uri',            # max: 1024
       LocalPath => 'MyDirectoryPath',    # max: 4096; OPTIONAL
     },    # OPTIONAL
     DefinitionName => 'MyHyperParameterTrainingJobDefinitionName'
     ,     # min: 1, max: 64; OPTIONAL
     EnableInterContainerTrafficEncryption => 1,    # OPTIONAL
     EnableManagedSpotTraining             => 1,    # OPTIONAL
     EnableNetworkIsolation                => 1,    # OPTIONAL
     HyperParameterRanges                  => {
       CategoricalParameterRanges => [
         {
           Name   => 'MyParameterKey',    # max: 256
           Values => [
             'MyParameterValue', ...      # max: 256
           ],    # min: 1, max: 20

         },
         ...
       ],    # max: 20; OPTIONAL
       ContinuousParameterRanges => [
         {
           MaxValue    => 'MyParameterValue',    # max: 256
           MinValue    => 'MyParameterValue',    # max: 256
           Name        => 'MyParameterKey',      # max: 256
           ScalingType => 'Auto'
           , # values: Auto, Linear, Logarithmic, ReverseLogarithmic; OPTIONAL
         },
         ...
       ],    # max: 20; OPTIONAL
       IntegerParameterRanges => [
         {
           MaxValue    => 'MyParameterValue',    # max: 256
           MinValue    => 'MyParameterValue',    # max: 256
           Name        => 'MyParameterKey',      # max: 256
           ScalingType => 'Auto'
           , # values: Auto, Linear, Logarithmic, ReverseLogarithmic; OPTIONAL
         },
         ...
       ],    # max: 20; OPTIONAL
     },    # OPTIONAL
     InputDataConfig => [
       {
         ChannelName => 'MyChannelName',    # min: 1, max: 64
         DataSource  => {
           FileSystemDataSource => {
             DirectoryPath        => 'MyDirectoryPath', # max: 4096; OPTIONAL
             FileSystemAccessMode => 'rw',              # values: rw, ro
             FileSystemId         => 'MyFileSystemId',  # min: 11
             FileSystemType       => 'EFS',    # values: EFS, FSxLustre

           },    # OPTIONAL
           S3DataSource => {
             S3DataType => 'ManifestFile'
             ,    # values: ManifestFile, S3Prefix, AugmentedManifestFile
             S3Uri          => 'MyS3Uri',    # max: 1024
             AttributeNames => [
               'MyAttributeName', ...        # min: 1, max: 256
             ],    # max: 16; OPTIONAL
             S3DataDistributionType => 'FullyReplicated'
             ,     # values: FullyReplicated, ShardedByS3Key; OPTIONAL
           },    # OPTIONAL
         },
         CompressionType   => 'None',          # values: None, Gzip; OPTIONAL
         ContentType       => 'MyContentType', # max: 256; OPTIONAL
         InputMode         => 'Pipe',          # values: Pipe, File
         RecordWrapperType => 'None',    # values: None, RecordIO; OPTIONAL
         ShuffleConfig     => {
           Seed => 1,

         },                              # OPTIONAL
       },
       ...
     ],    # min: 1, max: 20; OPTIONAL
     RetryStrategy => {
       MaximumRetryAttempts => 1,    # min: 1, max: 30

     },    # OPTIONAL
     StaticHyperParameters => {
       'MyHyperParameterKey' =>
         'MyHyperParameterValue',    # key: max: 256, value: max: 2500
     },    # max: 100; OPTIONAL
     TuningObjective => {
       MetricName => 'MyMetricName',    # min: 1, max: 255
       Type       => 'Maximize',        # values: Maximize, Minimize

     },    # OPTIONAL
     VpcConfig => {
       SecurityGroupIds => [
         'MySecurityGroupId', ...    # max: 32
       ],    # min: 1, max: 5
       Subnets => [
         'MySubnetId', ...    # max: 32
       ],    # min: 1, max: 16

     },    # OPTIONAL
   },    # OPTIONAL
   TrainingJobDefinitions => [
     {
       AlgorithmSpecification => {
         TrainingInputMode => 'Pipe',           # values: Pipe, File
         AlgorithmName     => 'MyArnOrName',    # min: 1, max: 170; OPTIONAL
         MetricDefinitions => [
           {
             Name  => 'MyMetricName',     # min: 1, max: 255
             Regex => 'MyMetricRegex',    # min: 1, max: 500

           },
           ...
         ],    # max: 40; OPTIONAL
         TrainingImage => 'MyAlgorithmImage',    # max: 255; OPTIONAL
       },
       OutputDataConfig => {
         S3OutputPath => 'MyS3Uri',              # max: 1024
         KmsKeyId     => 'MyKmsKeyId',           # max: 2048; OPTIONAL
       },
       ResourceConfig => {
         InstanceCount => 1,                     # min: 1
         InstanceType  => 'ml.m4.xlarge'
         , # values: ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.p3dn.24xlarge, ml.p4d.24xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5n.xlarge, ml.c5n.2xlarge, ml.c5n.4xlarge, ml.c5n.9xlarge, ml.c5n.18xlarge
         VolumeSizeInGB => 1,               # min: 1
         VolumeKmsKeyId => 'MyKmsKeyId',    # max: 2048; OPTIONAL
       },
       RoleArn           => 'MyRoleArn',    # min: 20, max: 2048
       StoppingCondition => {
         MaxRuntimeInSeconds  => 1,         # min: 1; OPTIONAL
         MaxWaitTimeInSeconds => 1,         # min: 1; OPTIONAL
       },
       CheckpointConfig => {
         S3Uri     => 'MyS3Uri',            # max: 1024
         LocalPath => 'MyDirectoryPath',    # max: 4096; OPTIONAL
       },    # OPTIONAL
       DefinitionName => 'MyHyperParameterTrainingJobDefinitionName'
       ,     # min: 1, max: 64; OPTIONAL
       EnableInterContainerTrafficEncryption => 1,    # OPTIONAL
       EnableManagedSpotTraining             => 1,    # OPTIONAL
       EnableNetworkIsolation                => 1,    # OPTIONAL
       HyperParameterRanges                  => {
         CategoricalParameterRanges => [
           {
             Name   => 'MyParameterKey',    # max: 256
             Values => [
               'MyParameterValue', ...      # max: 256
             ],    # min: 1, max: 20

           },
           ...
         ],    # max: 20; OPTIONAL
         ContinuousParameterRanges => [
           {
             MaxValue    => 'MyParameterValue',    # max: 256
             MinValue    => 'MyParameterValue',    # max: 256
             Name        => 'MyParameterKey',      # max: 256
             ScalingType => 'Auto'
             , # values: Auto, Linear, Logarithmic, ReverseLogarithmic; OPTIONAL
           },
           ...
         ],    # max: 20; OPTIONAL
         IntegerParameterRanges => [
           {
             MaxValue    => 'MyParameterValue',    # max: 256
             MinValue    => 'MyParameterValue',    # max: 256
             Name        => 'MyParameterKey',      # max: 256
             ScalingType => 'Auto'
             , # values: Auto, Linear, Logarithmic, ReverseLogarithmic; OPTIONAL
           },
           ...
         ],    # max: 20; OPTIONAL
       },    # OPTIONAL
       InputDataConfig => [
         {
           ChannelName => 'MyChannelName',    # min: 1, max: 64
           DataSource  => {
             FileSystemDataSource => {
               DirectoryPath => 'MyDirectoryPath',    # max: 4096; OPTIONAL
               FileSystemAccessMode => 'rw',                # values: rw, ro
               FileSystemId         => 'MyFileSystemId',    # min: 11
               FileSystemType       => 'EFS',    # values: EFS, FSxLustre

             },    # OPTIONAL
             S3DataSource => {
               S3DataType => 'ManifestFile'
               ,    # values: ManifestFile, S3Prefix, AugmentedManifestFile
               S3Uri          => 'MyS3Uri',    # max: 1024
               AttributeNames => [
                 'MyAttributeName', ...        # min: 1, max: 256
               ],    # max: 16; OPTIONAL
               S3DataDistributionType => 'FullyReplicated'
               ,     # values: FullyReplicated, ShardedByS3Key; OPTIONAL
             },    # OPTIONAL
           },
           CompressionType => 'None',          # values: None, Gzip; OPTIONAL
           ContentType     => 'MyContentType', # max: 256; OPTIONAL
           InputMode       => 'Pipe',          # values: Pipe, File
           RecordWrapperType => 'None',    # values: None, RecordIO; OPTIONAL
           ShuffleConfig     => {
             Seed => 1,

           },                              # OPTIONAL
         },
         ...
       ],    # min: 1, max: 20; OPTIONAL
       RetryStrategy => {
         MaximumRetryAttempts => 1,    # min: 1, max: 30

       },    # OPTIONAL
       StaticHyperParameters => {
         'MyHyperParameterKey' =>
           'MyHyperParameterValue',    # key: max: 256, value: max: 2500
       },    # max: 100; OPTIONAL
       TuningObjective => {
         MetricName => 'MyMetricName',    # min: 1, max: 255
         Type       => 'Maximize',        # values: Maximize, Minimize

       },    # OPTIONAL
       VpcConfig => {
         SecurityGroupIds => [
           'MySecurityGroupId', ...    # max: 32
         ],    # min: 1, max: 5
         Subnets => [
           'MySubnetId', ...    # max: 32
         ],    # min: 1, max: 16

       },    # OPTIONAL
     },
     ...
   ],    # OPTIONAL
   WarmStartConfig => {
     ParentHyperParameterTuningJobs => [
       {
         HyperParameterTuningJobName =>
           'MyHyperParameterTuningJobName',    # min: 1, max: 32
       },
       ...
     ],    # min: 1, max: 5
     WarmStartType => 'IdenticalDataAndAlgorithm'
     ,     # values: IdenticalDataAndAlgorithm, TransferLearning

   },    # OPTIONAL
   );

 # Results:
 my $HyperParameterTuningJobArn =
   $CreateHyperParameterTuningJobResponse->HyperParameterTuningJobArn;

# Returns a L<Paws::SageMaker::CreateHyperParameterTuningJobResponse> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/api.sagemaker/CreateHyperParameterTuningJob

ATTRIBUTES

REQUIRED HyperParameterTuningJobConfig => Paws::SageMaker::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 (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html).

REQUIRED HyperParameterTuningJobName => Str

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.

Tags => ArrayRef[Paws::SageMaker::Tag]

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 (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).

Tags that you specify for the tuning job are also added to all training jobs that the tuning job launches.

TrainingJobDefinition => Paws::SageMaker::HyperParameterTrainingJobDefinition

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.

TrainingJobDefinitions => ArrayRef[Paws::SageMaker::HyperParameterTrainingJobDefinition]

A list of the HyperParameterTrainingJobDefinition objects launched for this tuning job.

WarmStartConfig => Paws::SageMaker::HyperParameterTuningJobWarmStartConfig

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.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateHyperParameterTuningJob in Paws::SageMaker

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues