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::CreateAlgorithm - Arguments for method CreateAlgorithm on Paws::SageMaker

DESCRIPTION

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

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

SYNOPSIS

    my $api.sagemaker = Paws->service('SageMaker');
    my $CreateAlgorithmOutput = $api . sagemaker->CreateAlgorithm(
      AlgorithmName         => 'MyEntityName',
      TrainingSpecification => {
        SupportedTrainingInstanceTypes => [
          '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
        ],
        TrainingChannels => [
          {
            Name                  => 'MyChannelName',    # min: 1, max: 64
            SupportedContentTypes => [
              'MyContentType', ...                       # max: 256
            ],
            SupportedInputModes => [
              'Pipe', ...                                # values: Pipe, File
            ],    # min: 1
            Description => 'MyEntityDescription',    # max: 1024; OPTIONAL
            IsRequired  => 1,                        # OPTIONAL
            SupportedCompressionTypes => [
              'None', ...                            # values: None, Gzip
            ],    # OPTIONAL
          },
          ...
        ],    # min: 1, max: 8
        TrainingImage     => 'MyContainerImage',    # max: 255
        MetricDefinitions => [
          {
            Name  => 'MyMetricName',     # min: 1, max: 255
            Regex => 'MyMetricRegex',    # min: 1, max: 500

          },
          ...
        ],    # max: 40; OPTIONAL
        SupportedHyperParameters => [
          {
            Name => 'MyParameterName',    # max: 256
            Type =>
              'Integer',    # values: Integer, Continuous, Categorical, FreeText
            DefaultValue => 'MyHyperParameterValue',    # max: 2500; OPTIONAL
            Description  => 'MyEntityDescription',      # max: 1024; OPTIONAL
            IsRequired   => 1,                          # OPTIONAL
            IsTunable    => 1,                          # OPTIONAL
            Range        => {
              CategoricalParameterRangeSpecification => {
                Values => [
                  'MyParameterValue', ...    # max: 256
                ],    # min: 1, max: 20

              },    # OPTIONAL
              ContinuousParameterRangeSpecification => {
                MaxValue => 'MyParameterValue',    # max: 256
                MinValue => 'MyParameterValue',    # max: 256

              },    # OPTIONAL
              IntegerParameterRangeSpecification => {
                MaxValue => 'MyParameterValue',    # max: 256
                MinValue => 'MyParameterValue',    # max: 256

              },    # OPTIONAL
            },    # OPTIONAL
          },
          ...
        ],    # max: 100; OPTIONAL
        SupportedTuningJobObjectiveMetrics => [
          {
            MetricName => 'MyMetricName',    # min: 1, max: 255
            Type       => 'Maximize',        # values: Maximize, Minimize

          },
          ...
        ],    # OPTIONAL
        SupportsDistributedTraining => 1,                  # OPTIONAL
        TrainingImageDigest         => 'MyImageDigest',    # max: 72; OPTIONAL
      },
      AlgorithmDescription   => 'MyEntityDescription',     # OPTIONAL
      CertifyForMarketplace  => 1,                         # OPTIONAL
      InferenceSpecification => {
        Containers => [
          {
            Image             => 'MyContainerImage',       # max: 255
            ContainerHostname => 'MyContainerHostname',    # max: 63; OPTIONAL
            Environment       => {
              'MyEnvironmentKey' =>
                'MyEnvironmentValue',    # key: max: 1024, value: max: 1024
            },    # max: 16; OPTIONAL
            ImageDigest  => 'MyImageDigest',    # max: 72; OPTIONAL
            ModelDataUrl => 'MyUrl',            # max: 1024; OPTIONAL
            ProductId    => 'MyProductId',      # max: 256; OPTIONAL
          },
          ...
        ],    # min: 1, max: 5
        SupportedContentTypes => [
          'MyContentType', ...    # max: 256
        ],
        SupportedResponseMIMETypes => [
          'MyResponseMIMEType', ...    # max: 1024
        ],
        SupportedRealtimeInferenceInstanceTypes => [
          'ml.t2.medium',
          ... # values: ml.t2.medium, ml.t2.large, ml.t2.xlarge, ml.t2.2xlarge, ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.m5d.large, ml.m5d.xlarge, ml.m5d.2xlarge, ml.m5d.4xlarge, ml.m5d.12xlarge, ml.m5d.24xlarge, ml.c4.large, 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.c5.large, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5d.large, ml.c5d.xlarge, ml.c5d.2xlarge, ml.c5d.4xlarge, ml.c5d.9xlarge, ml.c5d.18xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.r5.large, ml.r5.xlarge, ml.r5.2xlarge, ml.r5.4xlarge, ml.r5.12xlarge, ml.r5.24xlarge, ml.r5d.large, ml.r5d.xlarge, ml.r5d.2xlarge, ml.r5d.4xlarge, ml.r5d.12xlarge, ml.r5d.24xlarge, ml.inf1.xlarge, ml.inf1.2xlarge, ml.inf1.6xlarge, ml.inf1.24xlarge
        ],    # OPTIONAL
        SupportedTransformInstanceTypes => [
          'ml.m4.xlarge',
          ... # values: ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, 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.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge
        ],    # min: 1; OPTIONAL
      },    # OPTIONAL
      Tags => [
        {
          Key   => 'MyTagKey',      # min: 1, max: 128
          Value => 'MyTagValue',    # max: 256

        },
        ...
      ],    # OPTIONAL
      ValidationSpecification => {
        ValidationProfiles => [
          {
            ProfileName           => 'MyEntityName',    # min: 1, max: 63
            TrainingJobDefinition => {
              InputDataConfig => [
                {
                  ChannelName => 'MyChannelName',    # min: 1, max: 64
                  DataSource  => {
                    FileSystemDataSource => {
                      DirectoryPath        => 'MyDirectoryPath',    # max: 4096
                      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
                  ContentType       => 'MyContentType',    # max: 256
                  InputMode         => 'Pipe',             # values: Pipe, File
                  RecordWrapperType =>
                    'None',    # values: None, RecordIO; OPTIONAL
                  ShuffleConfig => {
                    Seed => 1,

                  },           # OPTIONAL
                },
                ...
              ],    # min: 1, max: 20
              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
              },
              StoppingCondition => {
                MaxRuntimeInSeconds  => 1,         # min: 1; OPTIONAL
                MaxWaitTimeInSeconds => 1,         # min: 1; OPTIONAL
              },
              TrainingInputMode => 'Pipe',         # values: Pipe, File
              HyperParameters   => {
                'MyHyperParameterKey' => 'MyHyperParameterValue'
                ,    # key: max: 256, value: max: 2500; OPTIONAL
              },    # max: 100; OPTIONAL
            },
            TransformJobDefinition => {
              TransformInput => {
                DataSource => {
                  S3DataSource => {
                    S3DataType => 'ManifestFile'
                    ,    # values: ManifestFile, S3Prefix, AugmentedManifestFile
                    S3Uri => 'MyS3Uri',    # max: 1024

                  },

                },
                CompressionType => 'None',             # values: None, Gzip
                ContentType     => 'MyContentType',    # max: 256
                SplitType       =>
                  'None',    # values: None, Line, RecordIO, TFRecord; OPTIONAL
              },
              TransformOutput => {
                S3OutputPath => 'MyS3Uri',       # max: 1024
                Accept       => 'MyAccept',      # max: 256; OPTIONAL
                AssembleWith => 'None',          # values: None, Line; OPTIONAL
                KmsKeyId     => 'MyKmsKeyId',    # max: 2048; OPTIONAL
              },
              TransformResources => {
                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.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.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge
                VolumeKmsKeyId => 'MyKmsKeyId',    # max: 2048; OPTIONAL
              },
              BatchStrategy =>
                'MultiRecord',    # values: MultiRecord, SingleRecord; OPTIONAL
              Environment => {
                'MyTransformEnvironmentKey' => 'MyTransformEnvironmentValue'
                ,                 # key: max: 1024, value: max: 10240
              },    # max: 16; OPTIONAL
              MaxConcurrentTransforms => 1,    # OPTIONAL
              MaxPayloadInMB          => 1,    # OPTIONAL
            },    # OPTIONAL
          },
          ...
        ],    # min: 1, max: 1
        ValidationRole => 'MyRoleArn',    # min: 20, max: 2048

      },    # OPTIONAL
    );

    # Results:
    my $AlgorithmArn = $CreateAlgorithmOutput->AlgorithmArn;

    # Returns a L<Paws::SageMaker::CreateAlgorithmOutput> 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/CreateAlgorithm

ATTRIBUTES

AlgorithmDescription => Str

A description of the algorithm.

REQUIRED AlgorithmName => Str

The name of the algorithm.

CertifyForMarketplace => Bool

Whether to certify the algorithm so that it can be listed in Amazon Web Services Marketplace.

InferenceSpecification => Paws::SageMaker::InferenceSpecification

Specifies details about inference jobs that the algorithm runs, including the following:

  • The Amazon ECR paths of containers that contain the inference code and model artifacts.

  • The instance types that the algorithm supports for transform jobs and real-time endpoints used for inference.

  • The input and output content formats that the algorithm supports for inference.

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).

REQUIRED TrainingSpecification => Paws::SageMaker::TrainingSpecification

Specifies details about training jobs run by this algorithm, including the following:

  • The Amazon ECR path of the container and the version digest of the algorithm.

  • The hyperparameters that the algorithm supports.

  • The instance types that the algorithm supports for training.

  • Whether the algorithm supports distributed training.

  • The metrics that the algorithm emits to Amazon CloudWatch.

  • Which metrics that the algorithm emits can be used as the objective metric for hyperparameter tuning jobs.

  • The input channels that the algorithm supports for training data. For example, an algorithm might support train, validation, and test channels.

ValidationSpecification => Paws::SageMaker::AlgorithmValidationSpecification

Specifies configurations for one or more training jobs and that Amazon SageMaker runs to test the algorithm's training code and, optionally, one or more batch transform jobs that Amazon SageMaker runs to test the algorithm's inference code.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateAlgorithm 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