Amazon SageMaker Service

2020/01/10 - Amazon SageMaker Service - 3 updated api methods

Changes  SageMaker ListTrialComponents API filter by TrialName and ExperimentName.

CreateCompilationJob (updated) Link ¶
Changes (request)
{'InputConfig': {'Framework': {'KERAS'}}}

Starts a model compilation job. After the model has been compiled, Amazon SageMaker saves the resulting model artifacts to an Amazon Simple Storage Service (Amazon S3) bucket that you specify.

If you choose to host your model using Amazon SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts with AWS IoT Greengrass. In that case, deploy them as an ML resource.

In the request body, you provide the following:

  • A name for the compilation job

  • Information about the input model artifacts

  • The output location for the compiled model and the device (target) that the model runs on

  • The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker assumes to perform the model compilation job

You can also provide a Tag to track the model compilation job's resource use and costs. The response body contains the CompilationJobArn for the compiled job.

To stop a model compilation job, use StopCompilationJob. To get information about a particular model compilation job, use DescribeCompilationJob. To get information about multiple model compilation jobs, use ListCompilationJobs.

See also: AWS API Documentation

Request Syntax

client.create_compilation_job(
    CompilationJobName='string',
    RoleArn='string',
    InputConfig={
        'S3Uri': 'string',
        'DataInputConfig': 'string',
        'Framework': 'TENSORFLOW'|'KERAS'|'MXNET'|'ONNX'|'PYTORCH'|'XGBOOST'
    },
    OutputConfig={
        'S3OutputLocation': 'string',
        'TargetDevice': 'lambda'|'ml_m4'|'ml_m5'|'ml_c4'|'ml_c5'|'ml_p2'|'ml_p3'|'ml_inf1'|'jetson_tx1'|'jetson_tx2'|'jetson_nano'|'rasp3b'|'deeplens'|'rk3399'|'rk3288'|'aisage'|'sbe_c'|'qcs605'|'qcs603'
    },
    StoppingCondition={
        'MaxRuntimeInSeconds': 123,
        'MaxWaitTimeInSeconds': 123
    }
)
type CompilationJobName

string

param CompilationJobName

[REQUIRED]

A name for the model compilation job. The name must be unique within the AWS Region and within your AWS account.

type RoleArn

string

param RoleArn

[REQUIRED]

The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.

During model compilation, Amazon SageMaker needs your permission to:

  • Read input data from an S3 bucket

  • Write model artifacts to an S3 bucket

  • Write logs to Amazon CloudWatch Logs

  • Publish metrics to Amazon CloudWatch

You grant permissions for all of these tasks to an IAM role. To pass this role to Amazon SageMaker, the caller of this API must have the iam:PassRole permission. For more information, see Amazon SageMaker Roles.

type InputConfig

dict

param InputConfig

[REQUIRED]

Provides information about the location of input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.

  • S3Uri (string) -- [REQUIRED]

    The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

  • DataInputConfig (string) -- [REQUIRED]

    Specifies the name and shape of the expected data inputs for your trained model with a JSON dictionary form. The data inputs are InputConfig$Framework specific.

    • TensorFlow : You must specify the name and shape (NHWC format) of the expected data inputs using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different.

      • Examples for one input:

        • If using the console, {"input":[1,1024,1024,3]}

        • If using the CLI, {\"input\":[1,1024,1024,3]}

      • Examples for two inputs:

        • If using the console, {"data1": [1,28,28,1], "data2":[1,28,28,1]}

        • If using the CLI, {\"data1\": [1,28,28,1], \"data2\":[1,28,28,1]}

    • MXNET/ONNX : You must specify the name and shape (NCHW format) of the expected data inputs in order using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different.

      • Examples for one input:

        • If using the console, {"data":[1,3,1024,1024]}

        • If using the CLI, {\"data\":[1,3,1024,1024]}

      • Examples for two inputs:

        • If using the console, {"var1": [1,1,28,28], "var2":[1,1,28,28]}

        • If using the CLI, {\"var1\": [1,1,28,28], \"var2\":[1,1,28,28]}

    • PyTorch : You can either specify the name and shape (NCHW format) of expected data inputs in order using a dictionary format for your trained model or you can specify the shape only using a list format. The dictionary formats required for the console and CLI are different. The list formats for the console and CLI are the same.

      • Examples for one input in dictionary format:

        • If using the console, {"input0":[1,3,224,224]}

        • If using the CLI, {\"input0\":[1,3,224,224]}

      • Example for one input in list format: [[1,3,224,224]]

      • Examples for two inputs in dictionary format:

        • If using the console, {"input0":[1,3,224,224], "input1":[1,3,224,224]}

        • If using the CLI, {\"input0\":[1,3,224,224], \"input1\":[1,3,224,224]}

      • Example for two inputs in list format: [[1,3,224,224], [1,3,224,224]]

    • XGBOOST : input data name and shape are not needed.

  • Framework (string) -- [REQUIRED]

    Identifies the framework in which the model was trained. For example: TENSORFLOW.

type OutputConfig

dict

param OutputConfig

[REQUIRED]

Provides information about the output location for the compiled model and the target device the model runs on.

  • S3OutputLocation (string) -- [REQUIRED]

    Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, s3://bucket-name/key-name-prefix.

  • TargetDevice (string) -- [REQUIRED]

    Identifies the device that you want to run your model on after it has been compiled. For example: ml_c5.

type StoppingCondition

dict

param StoppingCondition

[REQUIRED]

Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.

  • MaxRuntimeInSeconds (integer) --

    The maximum length of time, in seconds, that the training or compilation job can run. If job does not complete during this time, Amazon SageMaker ends the job. If value is not specified, default value is 1 day. The maximum value is 28 days.

  • MaxWaitTimeInSeconds (integer) --

    The maximum length of time, in seconds, how long you are willing to wait for a managed spot training job to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the training job runs. It must be equal to or greater than MaxRuntimeInSeconds .

rtype

dict

returns

Response Syntax

{
    'CompilationJobArn': 'string'
}

Response Structure

  • (dict) --

    • CompilationJobArn (string) --

      If the action is successful, the service sends back an HTTP 200 response. Amazon SageMaker returns the following data in JSON format:

      • CompilationJobArn : The Amazon Resource Name (ARN) of the compiled job.

DescribeCompilationJob (updated) Link ¶
Changes (response)
{'InputConfig': {'Framework': {'KERAS'}}}

Returns information about a model compilation job.

To create a model compilation job, use CreateCompilationJob. To get information about multiple model compilation jobs, use ListCompilationJobs.

See also: AWS API Documentation

Request Syntax

client.describe_compilation_job(
    CompilationJobName='string'
)
type CompilationJobName

string

param CompilationJobName

[REQUIRED]

The name of the model compilation job that you want information about.

rtype

dict

returns

Response Syntax

{
    'CompilationJobName': 'string',
    'CompilationJobArn': 'string',
    'CompilationJobStatus': 'INPROGRESS'|'COMPLETED'|'FAILED'|'STARTING'|'STOPPING'|'STOPPED',
    'CompilationStartTime': datetime(2015, 1, 1),
    'CompilationEndTime': datetime(2015, 1, 1),
    'StoppingCondition': {
        'MaxRuntimeInSeconds': 123,
        'MaxWaitTimeInSeconds': 123
    },
    'CreationTime': datetime(2015, 1, 1),
    'LastModifiedTime': datetime(2015, 1, 1),
    'FailureReason': 'string',
    'ModelArtifacts': {
        'S3ModelArtifacts': 'string'
    },
    'RoleArn': 'string',
    'InputConfig': {
        'S3Uri': 'string',
        'DataInputConfig': 'string',
        'Framework': 'TENSORFLOW'|'KERAS'|'MXNET'|'ONNX'|'PYTORCH'|'XGBOOST'
    },
    'OutputConfig': {
        'S3OutputLocation': 'string',
        'TargetDevice': 'lambda'|'ml_m4'|'ml_m5'|'ml_c4'|'ml_c5'|'ml_p2'|'ml_p3'|'ml_inf1'|'jetson_tx1'|'jetson_tx2'|'jetson_nano'|'rasp3b'|'deeplens'|'rk3399'|'rk3288'|'aisage'|'sbe_c'|'qcs605'|'qcs603'
    }
}

Response Structure

  • (dict) --

    • CompilationJobName (string) --

      The name of the model compilation job.

    • CompilationJobArn (string) --

      The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model compilation job.

    • CompilationJobStatus (string) --

      The status of the model compilation job.

    • CompilationStartTime (datetime) --

      The time when the model compilation job started the CompilationJob instances.

      You are billed for the time between this timestamp and the timestamp in the DescribeCompilationJobResponse$CompilationEndTime field. In Amazon CloudWatch Logs, the start time might be later than this time. That's because it takes time to download the compilation job, which depends on the size of the compilation job container.

    • CompilationEndTime (datetime) --

      The time when the model compilation job on a compilation job instance ended. For a successful or stopped job, this is when the job's model artifacts have finished uploading. For a failed job, this is when Amazon SageMaker detected that the job failed.

    • StoppingCondition (dict) --

      Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.

      • MaxRuntimeInSeconds (integer) --

        The maximum length of time, in seconds, that the training or compilation job can run. If job does not complete during this time, Amazon SageMaker ends the job. If value is not specified, default value is 1 day. The maximum value is 28 days.

      • MaxWaitTimeInSeconds (integer) --

        The maximum length of time, in seconds, how long you are willing to wait for a managed spot training job to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the training job runs. It must be equal to or greater than MaxRuntimeInSeconds .

    • CreationTime (datetime) --

      The time that the model compilation job was created.

    • LastModifiedTime (datetime) --

      The time that the status of the model compilation job was last modified.

    • FailureReason (string) --

      If a model compilation job failed, the reason it failed.

    • ModelArtifacts (dict) --

      Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.

      • S3ModelArtifacts (string) --

        The path of the S3 object that contains the model artifacts. For example, s3://bucket-name/keynameprefix/model.tar.gz .

    • RoleArn (string) --

      The Amazon Resource Name (ARN) of the model compilation job.

    • InputConfig (dict) --

      Information about the location in Amazon S3 of the input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.

      • S3Uri (string) --

        The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

      • DataInputConfig (string) --

        Specifies the name and shape of the expected data inputs for your trained model with a JSON dictionary form. The data inputs are InputConfig$Framework specific.

        • TensorFlow : You must specify the name and shape (NHWC format) of the expected data inputs using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different.

          • Examples for one input:

            • If using the console, {"input":[1,1024,1024,3]}

            • If using the CLI, {\"input\":[1,1024,1024,3]}

          • Examples for two inputs:

            • If using the console, {"data1": [1,28,28,1], "data2":[1,28,28,1]}

            • If using the CLI, {\"data1\": [1,28,28,1], \"data2\":[1,28,28,1]}

        • MXNET/ONNX : You must specify the name and shape (NCHW format) of the expected data inputs in order using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different.

          • Examples for one input:

            • If using the console, {"data":[1,3,1024,1024]}

            • If using the CLI, {\"data\":[1,3,1024,1024]}

          • Examples for two inputs:

            • If using the console, {"var1": [1,1,28,28], "var2":[1,1,28,28]}

            • If using the CLI, {\"var1\": [1,1,28,28], \"var2\":[1,1,28,28]}

        • PyTorch : You can either specify the name and shape (NCHW format) of expected data inputs in order using a dictionary format for your trained model or you can specify the shape only using a list format. The dictionary formats required for the console and CLI are different. The list formats for the console and CLI are the same.

          • Examples for one input in dictionary format:

            • If using the console, {"input0":[1,3,224,224]}

            • If using the CLI, {\"input0\":[1,3,224,224]}

          • Example for one input in list format: [[1,3,224,224]]

          • Examples for two inputs in dictionary format:

            • If using the console, {"input0":[1,3,224,224], "input1":[1,3,224,224]}

            • If using the CLI, {\"input0\":[1,3,224,224], \"input1\":[1,3,224,224]}

          • Example for two inputs in list format: [[1,3,224,224], [1,3,224,224]]

        • XGBOOST : input data name and shape are not needed.

      • Framework (string) --

        Identifies the framework in which the model was trained. For example: TENSORFLOW.

    • OutputConfig (dict) --

      Information about the output location for the compiled model and the target device that the model runs on.

      • S3OutputLocation (string) --

        Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, s3://bucket-name/key-name-prefix.

      • TargetDevice (string) --

        Identifies the device that you want to run your model on after it has been compiled. For example: ml_c5.

ListTrialComponents (updated) Link ¶
Changes (request)
{'ExperimentName': 'string', 'TrialName': 'string'}

Lists the trial components in your account. You can filter the list to show only components that were created in a specific time range. You can sort the list by trial component name or creation time.

See also: AWS API Documentation

Request Syntax

client.list_trial_components(
    ExperimentName='string',
    TrialName='string',
    SourceArn='string',
    CreatedAfter=datetime(2015, 1, 1),
    CreatedBefore=datetime(2015, 1, 1),
    SortBy='Name'|'CreationTime',
    SortOrder='Ascending'|'Descending',
    MaxResults=123,
    NextToken='string'
)
type ExperimentName

string

param ExperimentName

A filter that returns only components that are part of the specified experiment. If you specify ExperimentName , you can't specify TrialName .

type TrialName

string

param TrialName

A filter that returns only components that are part of the specified trial. If you specify TrialName , you can't specify ExperimentName .

type SourceArn

string

param SourceArn

A filter that returns only components that have the specified source Amazon Resource Name (ARN).

type CreatedAfter

datetime

param CreatedAfter

A filter that returns only components created after the specified time.

type CreatedBefore

datetime

param CreatedBefore

A filter that returns only components created before the specified time.

type SortBy

string

param SortBy

The property used to sort results. The default value is CreationTime .

type SortOrder

string

param SortOrder

The sort order. The default value is Descending .

type MaxResults

integer

param MaxResults

The maximum number of components to return in the response. The default value is 10.

type NextToken

string

param NextToken

If the previous call to ListTrialComponents didn't return the full set of components, the call returns a token for getting the next set of components.

rtype

dict

returns

Response Syntax

{
    'TrialComponentSummaries': [
        {
            'TrialComponentName': 'string',
            'TrialComponentArn': 'string',
            'DisplayName': 'string',
            'TrialComponentSource': {
                'SourceArn': 'string',
                'SourceType': 'string'
            },
            'Status': {
                'PrimaryStatus': 'InProgress'|'Completed'|'Failed',
                'Message': 'string'
            },
            'StartTime': datetime(2015, 1, 1),
            'EndTime': datetime(2015, 1, 1),
            'CreationTime': datetime(2015, 1, 1),
            'CreatedBy': {
                'UserProfileArn': 'string',
                'UserProfileName': 'string',
                'DomainId': 'string'
            },
            'LastModifiedTime': datetime(2015, 1, 1),
            'LastModifiedBy': {
                'UserProfileArn': 'string',
                'UserProfileName': 'string',
                'DomainId': 'string'
            }
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • TrialComponentSummaries (list) --

      A list of the summaries of your trial components.

      • (dict) --

        A summary of the properties of a trial component. To get all the properties, call the DescribeTrialComponent API and provide the TrialComponentName .

        • TrialComponentName (string) --

          The name of the trial component.

        • TrialComponentArn (string) --

          The ARN of the trial component.

        • DisplayName (string) --

          The name of the component as displayed. If DisplayName isn't specified, TrialComponentName is displayed.

        • TrialComponentSource (dict) --

          The source of the trial component.

          • SourceArn (string) --

            The Amazon Resource Name (ARN) of the source.

          • SourceType (string) --

            The source job type.

        • Status (dict) --

          The status of the component. States include:

          • InProgress

          • Completed

          • Failed

          • PrimaryStatus (string) --

            The status of the trial component.

          • Message (string) --

            If the component failed, a message describing why.

        • StartTime (datetime) --

          When the component started.

        • EndTime (datetime) --

          When the component ended.

        • CreationTime (datetime) --

          When the component was created.

        • CreatedBy (dict) --

          Who created the component.

          • UserProfileArn (string) --

            The Amazon Resource Name (ARN) of the user's profile.

          • UserProfileName (string) --

            The name of the user's profile.

          • DomainId (string) --

            The domain associated with the user.

        • LastModifiedTime (datetime) --

          When the component was last modified.

        • LastModifiedBy (dict) --

          Who last modified the component.

          • UserProfileArn (string) --

            The Amazon Resource Name (ARN) of the user's profile.

          • UserProfileName (string) --

            The name of the user's profile.

          • DomainId (string) --

            The domain associated with the user.

    • NextToken (string) --

      A token for getting the next set of components, if there are any.