Class HyperParameterTuningJob


  • public class HyperParameterTuningJob
    extends com.pulumi.resources.CustomResource
    Manages an AWS SageMaker AI Hyper Parameter Tuning Job. > **NOTE:** This resource does not wait for the tuning job to complete before returning. Terraform may complete apply before the job reaches a terminal state. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.sagemaker.HyperParameterTuningJob;
     import com.pulumi.aws.sagemaker.HyperParameterTuningJobArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobConfigArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobConfigObjectiveArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobConfigParameterRangesArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobConfigParameterRangesCategoricalParameterRangeArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobConfigParameterRangesIntegerParameterRangeArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobConfigResourceLimitsArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionAlgorithmSpecificationArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionOutputDataConfigArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionResourceConfigArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionStoppingConditionArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionInputDataConfigArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionInputDataConfigDataSourceArgs;
     import com.pulumi.aws.sagemaker.inputs.HyperParameterTuningJobTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new HyperParameterTuningJob("example", HyperParameterTuningJobArgs.builder()
                 .config(HyperParameterTuningJobConfigArgs.builder()
                     .objective(HyperParameterTuningJobConfigObjectiveArgs.builder()
                         .metricName("test:msd")
                         .type("Minimize")
                         .build())
                     .parameterRanges(HyperParameterTuningJobConfigParameterRangesArgs.builder()
                         .categoricalParameterRanges(HyperParameterTuningJobConfigParameterRangesCategoricalParameterRangeArgs.builder()
                             .name("init_method")
                             .values(                        
                                 "kmeans++",
                                 "random")
                             .build())
                         .integerParameterRanges(                    
                             HyperParameterTuningJobConfigParameterRangesIntegerParameterRangeArgs.builder()
                                 .name("epochs")
                                 .minValue("1")
                                 .maxValue("10")
                                 .scalingType("Auto")
                                 .build(),
                             HyperParameterTuningJobConfigParameterRangesIntegerParameterRangeArgs.builder()
                                 .name("extra_center_factor")
                                 .minValue("4")
                                 .maxValue("10")
                                 .scalingType("Auto")
                                 .build(),
                             HyperParameterTuningJobConfigParameterRangesIntegerParameterRangeArgs.builder()
                                 .name("mini_batch_size")
                                 .minValue("3000")
                                 .maxValue("15000")
                                 .scalingType("Auto")
                                 .build())
                         .build())
                     .resourceLimits(HyperParameterTuningJobConfigResourceLimitsArgs.builder()
                         .maxNumberOfTrainingJobs(2)
                         .maxParallelTrainingJobs(1)
                         .build())
                     .strategy("Bayesian")
                     .build())
                 .trainingJobDefinition(HyperParameterTuningJobTrainingJobDefinitionArgs.builder()
                     .algorithmSpecification(HyperParameterTuningJobTrainingJobDefinitionAlgorithmSpecificationArgs.builder()
                         .trainingImage("174872318107.dkr.ecr.us-west-2.amazonaws.com/kmeans:1")
                         .trainingInputMode("File")
                         .build())
                     .outputDataConfig(HyperParameterTuningJobTrainingJobDefinitionOutputDataConfigArgs.builder()
                         .s3OutputPath("s3://example-bucket/output/")
                         .build())
                     .resourceConfig(HyperParameterTuningJobTrainingJobDefinitionResourceConfigArgs.builder()
                         .instanceCount(1)
                         .instanceType("ml.m5.large")
                         .volumeSizeInGb(30)
                         .build())
                     .stoppingCondition(HyperParameterTuningJobTrainingJobDefinitionStoppingConditionArgs.builder()
                         .maxRuntimeInSeconds(3600)
                         .build())
                     .inputDataConfigs(                
                         HyperParameterTuningJobTrainingJobDefinitionInputDataConfigArgs.builder()
                             .dataSource(HyperParameterTuningJobTrainingJobDefinitionInputDataConfigDataSourceArgs.builder()
                                 .s3DataSource(HyperParameterTuningJobTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs.builder()
                                     .s3DataType("S3Prefix")
                                     .s3Uri("s3://example-bucket/input/")
                                     .build())
                                 .build())
                             .channelName("train")
                             .contentType("text/csv")
                             .inputMode("File")
                             .build(),
                         HyperParameterTuningJobTrainingJobDefinitionInputDataConfigArgs.builder()
                             .dataSource(HyperParameterTuningJobTrainingJobDefinitionInputDataConfigDataSourceArgs.builder()
                                 .s3DataSource(HyperParameterTuningJobTrainingJobDefinitionInputDataConfigDataSourceS3DataSourceArgs.builder()
                                     .s3DataType("S3Prefix")
                                     .s3Uri("s3://example-bucket/input/")
                                     .build())
                                 .build())
                             .channelName("test")
                             .contentType("text/csv")
                             .inputMode("File")
                             .build())
                     .roleArn("arn:aws:iam::123456789012:role/example-sagemaker-execution-role")
                     .staticHyperParameters(Map.ofEntries(
                         Map.entry("feature_dim", "3"),
                         Map.entry("k", "2")
                     ))
                     .build())
                 .name("example")
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required * `name` (String) Name of the Hyper Parameter Tuning Job. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import SageMaker AI Hyper Parameter Tuning Jobs using `name`. For example: ```sh $ pulumi import aws:sagemaker/hyperParameterTuningJob:HyperParameterTuningJob example example-hyper-parameter-tuning-job ```
    • Constructor Detail

      • HyperParameterTuningJob

        public HyperParameterTuningJob​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • HyperParameterTuningJob

        public HyperParameterTuningJob​(java.lang.String name,
                                       HyperParameterTuningJobArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • HyperParameterTuningJob

        public HyperParameterTuningJob​(java.lang.String name,
                                       HyperParameterTuningJobArgs args,
                                       @Nullable
                                       com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the Hyper Parameter Tuning Job.
      • failureReason

        public com.pulumi.core.Output<java.lang.String> failureReason()
        Returns:
        Reason returned by SageMaker AI when a job fails.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Name of the tuning job. The following arguments are optional:
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • status

        public com.pulumi.core.Output<java.lang.String> status()
        Returns:
        Current tuning job status.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Map of tags to assign to this resource.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • trainingJobDefinition

        public com.pulumi.core.Output<java.util.Optional<HyperParameterTuningJobTrainingJobDefinition>> trainingJobDefinition()
        Returns:
        Single training job definition for tuning. See `trainingJobDefinition`.
      • trainingJobDefinitions

        public com.pulumi.core.Output<java.util.Optional<java.util.List<HyperParameterTuningJobTrainingJobDefinition>>> trainingJobDefinitions()
        Returns:
        Multiple training job definitions for tuning. See `trainingJobDefinition`.
      • get

        public static HyperParameterTuningJob get​(java.lang.String name,
                                                  com.pulumi.core.Output<java.lang.String> id,
                                                  @Nullable
                                                  HyperParameterTuningJobState state,
                                                  @Nullable
                                                  com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.