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