createExperiment method

Future<CreateExperimentResponse> createExperiment({
  1. required String experimentName,
  2. String? description,
  3. String? displayName,
  4. List<Tag>? tags,
})

Creates an SageMaker experiment. An experiment is a collection of trials that are observed, compared and evaluated as a group. A trial is a set of steps, called trial components, that produce a machine learning model.

The goal of an experiment is to determine the components that produce the best model. Multiple trials are performed, each one isolating and measuring the impact of a change to one or more inputs, while keeping the remaining inputs constant.

When you use Amazon SageMaker Studio or the Amazon SageMaker Python SDK, all experiments, trials, and trial components are automatically tracked, logged, and indexed. When you use the AWS SDK for Python (Boto), you must use the logging APIs provided by the SDK.

You can add tags to experiments, trials, trial components and then use the Search API to search for the tags.

To add a description to an experiment, specify the optional Description parameter. To add a description later, or to change the description, call the UpdateExperiment API.

To get a list of all your experiments, call the ListExperiments API. To view an experiment's properties, call the DescribeExperiment API. To get a list of all the trials associated with an experiment, call the ListTrials API. To create a trial call the CreateTrial API.

May throw ResourceLimitExceeded.

Parameter experimentName : The name of the experiment. The name must be unique in your AWS account and is not case-sensitive.

Parameter description : The description of the experiment.

Parameter displayName : The name of the experiment as displayed. The name doesn't need to be unique. If you don't specify DisplayName, the value in ExperimentName is displayed.

Parameter tags : A list of tags to associate with the experiment. You can use Search API to search on the tags.

Implementation

Future<CreateExperimentResponse> createExperiment({
  required String experimentName,
  String? description,
  String? displayName,
  List<Tag>? tags,
}) async {
  ArgumentError.checkNotNull(experimentName, 'experimentName');
  _s.validateStringLength(
    'experimentName',
    experimentName,
    1,
    120,
    isRequired: true,
  );
  _s.validateStringLength(
    'description',
    description,
    0,
    3072,
  );
  _s.validateStringLength(
    'displayName',
    displayName,
    1,
    120,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'SageMaker.CreateExperiment'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ExperimentName': experimentName,
      if (description != null) 'Description': description,
      if (displayName != null) 'DisplayName': displayName,
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateExperimentResponse.fromJson(jsonResponse.body);
}